From the point of view of an open source project, what can be done to specifically appeal to potential new contributors/developers?
In other words, what are those things that you as programmers (assuming it's your area of interest and skills/expertise match) are looking for in an open source project, that would make you seriously consider contributing to it?
Some things, that I personally look out for:
- regularly maintained webpage
- project should be fairly active, with an active following and some momentum
- some sort of community and place to conduct discussions (mailing lists, forums, usenet ...)
- preferably, some introductory-level documentation to getting involved (APIs, examples)
- it should be straightforward to set up a build system including all relevant dependencies, preferably within less than an hour
- a simple way of getting patches contributed, reviewed and committed, directly to a topic branch or preferably to HEAD
So, what is it for you? (if you find it easier to post counterexamples, please do so, too!)
There can't be interpersonal barriers to a new person contributing something to the project - by that I mean, you have to be welcoming. For instance, if I send in a small patch that fixes a bug or adds a little feature, I'm going to want some feedback, whether it's to say "thanks we'll put that in" or "sorry, we don't want to incorporate that because..." or whatever. If you (the project devs) don't give some sort of acknowledgement like that, you're sending a message that you don't really want outside help. All too often I've seen projects with web pages that say "Want to help? Send us a patch, suggest an improvement..." or some such thing but when you actually do it, they act like they don't care.
Basically, make it easy for people to see that they're being useful and that their contribution is appreciated.
From my point of view, I'd try to help in the development of things that I find useful for my work. It will be my primary motivation.
Sure, it helps if:
the code is clean and easy to understand (this is the most important thing, I believe. If the codebase is a mess, it won't have too many contributors),
has a good and easy to follow documentation,
has a friendly community
If I find a nice open source tool that really helps me I also try to donate some money to that project. I believe that open source should not necessarily be free.
If we find a tool useful and save money by using it instead of having to pay for a privative one, we should share the benefit with the developers of the tool, thus improving it even more.
- It'd have to be something I'd want to use.
- Solves a new and interesting problem.
- It would also have to be either in my area of dev expertise, or way outside it (so that I can learn from what others have done).
maybe you should have some sort of contest? where people can win cool stuff or a small cash prize...