Sunday, January 29, 2006

Attracting "outside developers" to your Open Source project...

During a brief discussion with some folks who work at Actuate, it became apparent that several open source projects in fact have little or no participation from "outside developers". I'm referring to "outside developers" as those who are not employees of the sponsoring organization. An "outside developer" could be an end user, an employee of a customer using that software or someone who just has time on Sunday mornings to exercise his/her programming brain cells for no particular financial gain.

Having said that, it is interesting to note that some projects such as BIRT, which is being sponsored by Actuate, were created to counter open source software such as Jasper's reporting software. However they have been unable to attract adequate open source developers. Given the size of Actuate's customer base, one would have thought otherwise. Just take a look at the their bug list.

From what I can tell, there maybe several reasons for the lack of "outside developers" including the following:

a. First mover advantage - Given that there is a limited pool of independent "outside developers", its likely they have already flocked to the likes of JasperReports. The remaining set of "outside developers" has not developed probably for some of the reasons described below.

b. Complexity - The complexity of the code is an important factor for someone to contribute. For those of us who have been developers, the more complex the code, the harder it gets to make changes to it.

c. Barrier to contributing - If there are a lot of instructions and the time and effort required to start contributing code is high, its very likely to turn off potential "outside developers".

c. Incentive - For someone to contribute code, there has to be reason to do so. If I work for a company that uses some of the open source code and I uncover some bugs, I am clearly incented to contribute the fix. Similarly, open source developers provide enhancements if they feel they will be useful for others in the open source community.

The bottom line is that one has to address the above issues in order to leverage "outside developers". If that does not happen, one needs to invest in the development activity. This does not mean that a project without a large number of "outside developers" is entirely worthless (because there is value for the end users of the software to review bugs, fixes etc. from the project web site) but to put it mildly the value to the promoters of the open source project is marginal in the long run.