Thursday, February 21, 2013

We Should Expect To Pay For Small Open Source Projects

I love open source. I use open source. I contribute to open source; I wrote SimpleDB and DynamoDB Grails GORM adapters for AWS. And I am not sure I will do anything like that again. You see, there is a big problem with Type 0 Open Source Projects (read below).

A recent post by Marc Palmer coincided with what I was suspecting for a long time, and acted as a catalyst to this post, firming up my belief that we need to start supporting open-source developers by paying some small amounts as a required step, not voluntarily.

First, let’s take a step back and try to classify all various kinds of Open Source Projects (OSPs). This is my own classification based on my understanding of how things go, and I could have missed something or misinterpreted something. Please let me know if there are inaccuracies below.

Types/stages of Open Source Projects (OSP):

Type 0 - part-time enthusiasts - very small OSP (for example, grails plugins) typically developed by 1/2/3 people, often in a very initial stage, often with minimal features and relatively low adoption. Typically developers are not working full time and are employed somewhere else.

Type 1 - consulting-financed - an OSP which started getting a lot of adoption and publicity (for example, compass/elasticsearch three years ago, or JBoss in 2001/2002). Because of the widespread usage, the core development team can now afford to create a consulting company and focus full-time on actively improving/developing the project while being hired by early adopters to solve problems and add high-priority features.

Type 2 is the ultimate goal of Type 1 projects - acquisition/investors/IPO - the developers are waiting for a large entity to buy out the consulting company (VMWare buying SpringSource, RedHat buying JBoss etc) or to get an investment from VC with the goal of being acquired later or going straight to IPO. After that developers have equity and are paid good salaries to develop the project. At this point the developers are forced to work on two streams:

developing paid proprietary customizations of the project (Redhat Enterprise) or working on some sort of proprietary platform (for example CloudFoundry hosting platform for VMWare)

Progression from each stage to the next is in the order of magnitude harder in terms of required number of installations and features.

What this basically means is that if a developer is working on Type 0 project (pretty much part-time) the only way of making any money to focus on continually working on the project is it either being so *widely* popular that donations make it feasible (don’t know too many examples) or … and here is the problem. Unless the developer manages to convince his day-time employer to use the project as a component in the employer’s IT ecosystem and thus pay for the day-time improvements to the OSP, I don’t know any other way of how a developer can sustain a Type 0 OSP.

Out of 900 grails plugins too many are unsupported or exist with just a rudimental set of features, and so oftentimes I am simply afraid to start using one and end up writing the functionality myself. I strongly suspect there is a similar situation with plugins (Type 0 OSPs) for other frameworks and platforms.

So for Type 0 OSPs we have a situation where none of us wins. And the only solution that is sustainable is to pay those part-time developers who are working really hard on making something new. It should be up to the developer of the OSP of course to decide which model to use, but the development community should change the mindset to now accept/expect two basic modes for all Type 0 OSPs:

status-quo - everything is totally free

required purchase of a license. There are many variants of how this can be done (for example, free for dev testing and required license for all customer-facing/public internet deployment etc), but the goal is to force users of Type 0 OSPs to pay some token amount of money like $15 or even $5 to the developer.

Without the acceptance of the fact that we need to pay for Type 0 OSPs a lot of good things are left to wither and die. By paying just a little more than none we will see a much stronger and healthier Type 0 OSP ecosystem.