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 @turnkeylinux.org 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 

Comments

Joey's picture

I'm wondering if there would be room for people to submit projects to TKL developers and have them made 'turnkey simple'. A few examples...

 

1.) I have a purchased copy of InvoiceDude. I cannot, for the life of me, get it, the IonCube loaders, and Linux Proper to play nicely together. I'm sure a dev here would be able to get them to work together and prompt me for my serial number as one of the stipulations when it's asking me for a root/SQL password.

2.) On a similar note, I have a copy of IDC File Manager with roughly the same problem. I'd love to give a TKL developer a few bucks to solve my problem for me.

3.) For something that's actually distributable, I have wanted to play with Alfresco for some time. I know Bitnami has an appliance for it, but where TKL royally runs circles around Bitnami is that TKL does installable ISOs much better, and network setup doesn't involve having to use vi on config files before you can SSH in to yum install nano to then easily edit other config files. The OSS flavor I believe can be distributed as normal, and I think it would be a great addition to the TKL fold.

 

There's a laundry list of requested appliances to be made. TKL's resources are finite. I certainly understand that you don't want developers who are just in it for the money, but if a given appliance is worth a few dollars to me, a developer can decide whether to allocate his or her time to my appliance (because they need the money), or to another (because there is a greater demand for it). Similarly, if appliance 'foo' is needed 5 people who have all pledged $20 to its creation,  but appliance 'bar' is needed by 100 people, if 'foo' lays the groundwork for 'bar', then the people who need 'foo' are indirectly assisting with the needs of the 'bar' users, and the developer's work is both funded and compounded in its utility.

 

Debian is an excellent project and I highly respect their developers. I concur that many of them do it because it's intrinsically worthwhile, not because they want a paycheck. However, even Debian takes money indirectly through plastic disc sales. Debian is also laying a foundation upon which countless other projects stand (including, obviously, TKL), so the 'warm, fuzzy feeling' has a much greater reach than the guy who says they're willing to make an Alfresco stack for the few hundred people who will likely download and install it.

 

I see the point, and TKL has been an excellent project regardless of who pays what when. I don't, however, think there's a complete lack of room for money to change hands from people like myself, to people like yourself.

 

Joey

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.

Noah 's picture

I stumbled on your site today and I will admit that I am somewhat of a noob. I love both the idea and the community that comes with open source though .

I think that the idea Joey had is great as well . If there is a funding goal for certain applications I know it would get respones and funding . I feel like there would have to be a set amount of appliances vying for funds though because if anyone could fund anything ,then the money would get to spread out and not many things would get fully funded . Like say for the month of May these 5 appliances are competing for funds so that it would narrow the choices down . Then maybe 2 weeks before the end of the current months contest send out an email where everyone can vote on what the following months appliances would be in the competition .

I really like your idea about having a "mentorship" program of sorts and I am not sure if I would be good enough to even be a junior dev ( I am not a complete noob I do web design and some coding ) What I think would be needed would be some kind of a small test that a person could take to see if they could contribute with the help of a mentor . If they didn't pass then there would be a predesigned crash course that is only available after failure of the test (maybe this should be avilable from jump so that they could study) . This is how some of the start-up incubators and a few of the "learn to code " apps operate . 

All that being said , I absolutely love to create and although I am motivated by money to a degree I thoroughly enjoy creating something of value just for the sake of it . I am in fact spending my time and my own money to create something really cool and useful that I intend to make free once it is finished .

Not sure if this all made sense but thanks for letting me ramble ! 

It is amazing what has and can be accomplished with an open source community . If I can get my skills up to snuff to work on an appliance I will certainly help in any way I am able . Keep being amazing!

Noah

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.

Pages

Add new comment