The pros, cons and alternatives to financial rewards in an open source project

Here's another blog post that started life as a response to a private email Jeremy Davis (JedMeister on the forums) sent me regarding various things we could try to recruit more developers as TurnKey contributors:

Just a random thought that I'd like to put out there. I noticed some time ago that SourceForge have forums on both Projects requiring developers and developers looking for projects.

I personally think that we have nothing to lose, but I also think that timing is important. Not much use in recruiting before we are really ready to get them into it, it will only serve to turn them off... Be interested in what you guys think.

Looking for help at various watering holes where other people who are looking to help might come to is an excellent idea and definitely worth a shot. We don't have much to lose. Even if it doesn't work we are likely to learn something from it.

Should we wait for TKLDev "in the cloud"?

I don't think so. Sure, we can make the development process easier (e.g., TKLDev in the cloud) but if contributors use TKLDev to develop a new appliance that meets our standards of quality (e.g., uses inithooks to set default passwords) we already have the ability to accept it into the library with little additional work. The importing process is now almost automatic.

Pros and cons of doing another contest

To be honest up until now we haven't given enough thought to actively recruiting developers beyond doing a contest, which we announce on the newsletter, and hoping those interested come to us and sort of stick around.

I guess that's our focus because up until very recently we were so overloaded by work that we didn't dare seriously consider more resource intensive ideas. Plus the first TurnKey development contest is the only thing we have experience with so far that worked. Well sort of, we did discover it was still very labor intensive to turn TKLPatches into fully fledged appliances, but that was before TKLDev.

The downside to recruiting with contests:

  • Money comes, money goes: Developers that are motivated by the financial reward may leave after the contest ends.

  • Money comes, volunteers leave: developers that are not motivated by financial rewards might externalize their motivation to the financial reward instead of contributing for the instrinsic joy of creating something cool and useful.

    Granted right now we don't have too much to lose because we don't really have that many regular open source contributors to demotivate but still...

Contests don't solve the scaling problem

That doesn't mean a contest wouldn't be very useful. If we define our quality standards carefully enough we'll probably be able to expand the library with many good submissions. It will be more work to evaluate the quality of submissions and hence forward to maintain the new appliances internally. But right now if we double the size of the library, our maintenance overhead will nearly double as well. It can be useful, but it's not infinitely scalable.

Alternatives to financial rewards?

Most open source contributions are not driven by direct financial incentives. Paid developers may form the backbone of a project but in the most successful projects the community contributes far more, at least in aggregate.

Otherwise open source projects would only work when companies decide to pool resources.

Projects like Debian, which TurnKey is based on, prove that you can do open source, even on a lage scale without any financial incentives by invoking other aspects of Maslow's hierarchy of needs.

Instead of money contributors are motivated by:

  1. self fulfillment: doing things for their intrinsic rather than extrinsic rewards. Creating something for it's own sake. Because it's beautiful. Because it solves an important problem and you enjoy helping others, etc.

    This is the highest form of motivation which leads to the highest levels of mastery and accomplishment but it rarely comes into play unless the other levels of motivation below it are satisfied.

  2. esteem / reputation: a non-tangible form of capital that can easily lead to tangible benefits (e.g., a better, more fulfilling higher paying job) and intangible benefits (e.g., respect, self confidence)

  3. learning opportunities: contributing to an open source project is a great way to get "on the job", hands on experience and gain skills that make you more valuable in the marketplace. You get the guidance of experts, and pay with your time and contributions rather than with tuition fees.

  4. love & belonging: their desire to belong to a desirable group of peers.

Translating this into the field is a challenge and building a Debian style community isn't easy under the best of circumstances.

I think many open source projects face a catch 22 when considering whether or not to develop commercial offerings.

On one hand, you're pushed to commercialize because if you can't make a living working on something, that puts a strict upper end on the amount of time and energy you can put into it. Unless you are already so rich that money is no object, you can't work full time on an open source project that doesn't pay the bills - you'll end up homeless before long.

On the other hand, you're pushed away from commercialization because it's harder to get unpaid developers enthusiastic about contributing when there is a commercial sponsor behind the scenes that is perceived to benefit from their contributions. This may shift the perception of potential contributors from "gift economy mode" (non-zero sum, everyone wins) to "rational capitalist mode" (zero sum: winners and losers).

A few ideas on how to create a social structure that isn't based on financial incentivse:

  • Reward contributors with satisfaction: the satisfaction of a cool thing they've created, an important problem they've solved.

  • Reward contributors with reputation: acknowledge and celebrate contributions, give credit where credit is due, make users of products aware of the developer[s] behind it (e.g., finish installation routine with a credits screen), etc.

  • Reward contributors with knowledge: tell the stories of other people who were empowered by contributing to TurnKey / open source.

  • Reward contributors with association and belonging: this requires some kind of in-group to be formed that outsiders must aspire to belong to and that there is some process (e.g., mentorship) that benefits the community in which they transition from outsider to insider.

    Examples: Debian membership and mentorship process.

Come to think of it a mentorship program might be a cool thing to explore.

Existing "masters" teach "grasshoppers" the skills of putting together an appliance. Grasshoppers prove their skills by creating at least one new appliance that passes TurnKey's standards of quality. In return they get:

  • Some sort of official membership / mastership status (e.g., a email address and a listing/link/badge on an official web page/database that shows off the quantity and quality of their contributions hall of fame style.

    What apps do they develop/maintain? How many downloads/deployed instances do these apps have?

    How many masters have they they mentored?

    Maybe we'll want a cool tongue in cheek name for this group (e.g., TurnKey Ninjas, Samurais, etc.) but that's an optimization for later. I propose just calling them team developers and maybe asking around to see what they think of a new "cool" name.

  • Credits for developing and maintaining the appliance on the appliance page + credits in the last screen of the installation process (e.g., think TurnKey product was built and maintained by Jeremy Davis).

  • An invitation to join virtual (and later real-life) meetups where we introduce new members and new contributions, discuss formally and informally all things TurnKey, do hackathons, and enjoy our 


Jeremy Davis's picture

1) & 2) could be possibly done, but unfortunately TKL doesn't currently have the resources to do it on a job-by-job basis (i.e. give you a hand setting it up, then the next person etc, etc). And TKL would probably need to charge too much for it to make it worth their while at the moment (western IT hourly rates are pretty high). So much to do and so few resources...

It may be feasible for TKL fans/hobbyists to do this and perhaps it would be worth their time. Perhaps there could be a TKL integrator marketplace - to hook up people who want to do that sort of thing with those that want to do it? However, that is not a new concept, there are a number of websites that offer that sort of thing and my concern is how TKL can validate the integrators? What if things go pear shaped? How much resources might it cost TKL resolving disputes that might arise?

What may be a more feasible option (at some time in the future) is speaking with the software vendor(s) and discussing integrating proprietary software in a similar way to that which is currently done with TKL. However, again in the short term there are a lot of pots on the boil (plates in the air, any other cliche that applies...) so not sure if that is something that TKL could look at any time real soon.

Also it would have to be clearly separated from TKL to avoid confusion and probably requires a lot more thought and contemplation... Another limiting factor would be that there is no single way that software is sold/distributed. Some use a simple system where you need to pay and then you can download the current version (and you may or may not get to download newer versions for some period of time). The other end of the spectrum is done using time-limited single-use licence keys (where pretty much anyone can download then you need to put in the license key to activate it). And there are many other models that use similar concepts and combinations of concepts... How to integrate and streamline all that I don't know really...

3) Alfresco is one that I personally would love to see happen... I has been on the Wishlist aka Appliance Candidate List for some time. I did install it on TKL some time ago and got it working (and took notes) but never got as far as producing it. When I have time I will dig it out and see what I can do...

Your idea of in essence making pledges towards an appliance candidate I really like. Perhaps a 'competition' like Bitnami appear to currently have with 'voting' for candidates plus the option to pledge as well (with $1 pledge being equivalent to so many extra votes) could be a viable option...?

Regardless, I think that your ideas are great and thanks heaps for putting them out there. They definitely provide food for thought and are certainly not bad ideas. They may be ways to add additional revenue but at this stage probably aren't enough to provide consistent returns without significant work.

Liraz Siri's picture

Joey, Noah and Jeremy: thank you so much for provided much needed feedback. What started out as a comment reply eventually turned into a new blog post on free software bounties, which I'm hoping will keep the discussion going.


Add new comment