views:

571

answers:

5

I know there are a number of successful open source authors here. We develop a relatively successful open source project (I won't say what at the fear of spamming). Now gradually, after about 3 years the number of developers has slowly increased, but they tend to turn up sporadically, write some code, then leave forever.

The nature of the product is such that it will really need a number of developers to work for a sustained period of time to allow it to reach the ambitions I had when kicking off the project.

Now I have made some efforts into making the project "developer-friendly", such as:

  • Good community: mailing list, IRC, friendliness
  • Good developer documentation
  • Very explicit and simply implemented code base

Still we have some difficulty in recruiting people. I know people use the project (it is in all the Linux distributions, and has had around 30K source downloads from google code, and a number of blog posts.)

Please could I have your tips on how to improve this situation?

+4  A: 

The answers here may be helpful: http://stackoverflow.com/questions/95710/how-do-you-promoteadvertiseevangelize-your-open-source-project

warren
Thanks for this. I have totally given up promoting or evangelising it. The actual type of software makes it very difficult to push on people. In general the product speaks for itself, so I just end up feeling like a fool.
Ali A
I have found it much harder to find developers than users.
Ali A
some number of users may want to contribute back, however - i've never gotten involved without being a user for a while first
warren
+13  A: 

In my opinion, most people are motivated to contribute to open-source projects for a combination of two reasons:

  1. The first is pain...they need your open-source application for some purpose, and there is either a feature missing or a bug that is impacting them, and they contribute to fix the issue in order to proceed with their original purpose, which is using your code.

  2. The second is more intrinsic, and could be described as peer recognition, career development, cool factor, etc. Perhaps they're looking to get more experience to buff up their resume, or perhaps they just think it's cool to be one of the developers on such-and-such project. They're doing it for the "fun" of it.

That being said, it sounds like you're getting a lot of people in the #1 category, where they show up, add a little bit, and go away. That's to be expected, and in my opinion you should be grateful for those people.

In order to get more long-term developers, you'll need to advertise more, and try to get visibility so that people WANT to contribute so they'll be associated with a well-known popular project.

You might also approaching some of the people who submit just bug-fixes and ask them if they're interested in contributing more. Some people might be in the first category, but if approached might consider moving into the second category.

Best of luck!

m0j0
"Best of luck!" thanks :)
Ali A
+10  A: 
  1. determine the motivation of developers when they join. Survey existing and new developers (briefly!) to find out why they are helping in the first place
  2. try to figure out why developers leave - an exit survey or a we-miss-you email might shed some light on why they are going
  3. look at what incentives you are offering developers to stay on the project, directly or indirectly. A public "thank you" on the web site may be good incentive for some, while credit in the source code may punch others' buttons. You may be offering explicit incentives, or incidental incentives; identify them.
  4. try to balance motivation factors with incentives.

In commercial projects, the incentive and the motivation are usually both "cash". Non-commercial projects have to try harder. ;-)

Steven A. Lowe
Thanks for this. 1,2,3 are all great, and improvements we could make isntantly. Not 100% sure what 4 means though.
Ali A
Oh and about the cash incentive/motivation - one day when I own Google and Apple, I'll be able to afford to just pay people to hack on it!
Ali A
@Ali: #4 means to match the incentives you offer with the things that motivate your developers. So if the developers like to see their name in lights, list the current developers on the main page and order them by most recent check-in, or similar
Steven A. Lowe
Ah I see. This is my favourite answer because it has more specific practical implementable advice than the others.
Ali A
+4  A: 

In my opinion there are four directions you could consider applying you effort in:

1) Getting a word out that the project looks for contributors: you don’t get if you don't ask. Sometimes it might help to frame more precisely the help required, i.e. what exact assistance are you looking for and a required skill set. It will make easier for people to see how they fit. Use your web site and the product splash screen, about box or help as free advertising media.

2) Eliminating unnecessary entry barriers: make it easy for people to join in. Even setting up an initial dev environment can be an off putting task. May be actually suggesting some real “no-brainer” contributions that can be made in less than an hour may help people start contributing and eventually become more involved.

3) Rewarding participation: give credit to people and organisations involved on your web site. Suggest giving references to actual contributors, pretty much as you would do for your colleagues, they needn’t to be detailed, just “such and such has been providing a valuable contribution to project WhatDateIsIt.com starting from March 2009 and till present time in a role of Java developer”.

4) Building and investing into wider community around your project, making sure the user community is visible on your project web site. To have some heroes that actually put the code together first you need some ordinary folks who need these heroes badly. If you want contributors to feel like elite because of their ability to program (and therefore have their egos boosted automatically each time they submit new code) you need ordinary folks, the community that does not contribute directly but via admiration and respect. There is no theatre without spectators.

Totophil
Thanks for this. I am especially interested in 3. Its something we don't eally do at the moment. We do try the others though.
Ali A
+1  A: 

Well people must be willing to participate. So it seems not too many find it as intersting as you do. That's bitter for you but just see it the other way. I'd had another open source project which I like and now I'd ask you, "Hey how about working with us?". You'd say "not my area I'm intersted in...."

One can ask "what do I gain to support you and work for free"?

Friedrich