This post can be summed up by
one two sentences: “We can’t buy love.” “Starting to pay for love could make it disappear” while at the same time “We need money to live and love”. These two conflicting forces, with relation to open source, are the topic of this post.
This post is directed to the community or R users but is relevant to people of all open source projects. it deals with the question of open source projects and funding. Specifically, should a community of open source developers and users, once it exists, want to start raising/donating money to the main code contributers?
The conflict stems since, on the one side, we intuitively want to repay the people who have helped us, some studies in behavioral science suggests that doing so might destroy the motivation of the developers to continue working without contently getting payed, and that making the shift from doing something for one reason (whatever it is) to doing it for money, might not easily be turned back.
On the other side, developers needs to make a (good) living, and we (as a community) should strive for them to be well payed.
How can these two be reconciled?
This article won’t offer a decisive conclusions – and my hope is to invite discussion on the matter (from both amatures and professionals in the field of open source and behavioral economics) so to give more ideas for people to base their opinions on.
Update: this post was substantially updated from it’s original version, thanks to responses both in the comments, and especially in the e-mails. I apologies for writing a post that had needed so many corrections, and at the same time I am grateful for all the people who took the time to shed light in places where I was wrong.
* * * *
Motivation: R has issues – how do we get them fixed?
In the past two weeks there has been a raging debate regarding the future of R (hint: “what is R“). Without going deeper into the topic (I already wrote about it here, where you too can go and respond), I’ll sum up the issue with a quote from Ross Ihaka (one of the two founders of R) who recently wrote:
I’ve been worried for some time that R isn’t going to provide the base that we’re going to need for statistical computation in the future. (It may well be that the future is already upon us.) There are certainly efficiency problems (speed and memory use), but there are more fundamental issues too. Some of these were inherited from S and some are peculiar to R.
A few days ago Tal Galili posted a message about some controversies concerning the future of R. Having read the discussions, especially those following Ross Ihaka’s post, I have come to the conclusion, that, as usual, the problem is money. I doubt there would be discussions about dropping R in its present form if the R-Foundation were properly funded and could hire computer scientists, programmers and statisticians. If a commercial company is able to provide big-database and multicore solutions, then so would a properly founded R-Foundation.
To which my response is that: I
strongly disagree with this statement..
That is, I do agree that money could help with things. It could be that money could be a part of the solution. But I doubt that the core of this problem is money. Nor that it would be solved if we could only now hire “computer scientists, programmers and statisticians” (although that could be part of the solution).
And the reason I am doubtful stems from two sources:
1. Motivation in general – and money
The first reason is presented in the following short (~10 minutes) video titled “Drive: The surprising truth about what motivates us”, adapted from Dan Pink’s talk at the RSA.
This talk dicusses what motivates us, and also about what (surprisingly) doesn’t motivate us: money. What does? watch the talk (it’s fun):
2. The split personality of open-source developers: Social Norms vs Market Norms
The second concern I have comes after reading Dan Ariely’s great book “Predictably Irrational”. In chapter 4, Ariely makes the distinction between (what he terms) “Social Norms” and “Market Norms”. You can listen to him talk about it in the following (~4 minutes) video:
Another example of what is said in this video is an experiment Dan made where he took three groups for a 5-minute task on a computer, dragging circles into a square. One group did it as a favor to the experimenter, one group was paid $5 and the third group was paid 50 cents. The 50-cent group was less productive than the $5 group. But the people who did the task as a favor were the most productive of all! In case this artificial experiment is not convincing, Dan also gave real-life examples, including military service and the pro bono work of lawyers.
In our case, we can often teach R in the University or use it to solve real world problems while getting paid (and being expected to be paid), but at the same time we ask and give help (answering questions and programming) online (and offline with friends) for free. We are walking a thin line of keeping a psychological balance here. Ariely wrote that:
When a social norm collides with a market norm, the social norm goes away for a long time. In other words, social relationships are not easy to reestablish.
One of the things about the open source community that continues to baffle those non-open source people is, “why do you do it?” Open source developers work on open source software for a number of reasons from scratching an itch to gaining a reputation to building a resume to contributing to a good cause.
The interesting problem comes when money enters into the equation. Research shows that when someone works on something for free (for internal rewards) if you start paying them you replace those internal rewards. Then if you stop paying them, they will stop working on it. Does that hold true for open source software? Are commercial companies killing open source by paying people to work on it?
Once you are paid to work on open source software, it would be hard to go back to doing it for free.
Hence my question (and fear): Would starting to pay people in the R community (who by now where working for free) to work on R (a free open source project) – will end up killing it?
So can we pay open source developers?
Let’s be clear here – we can pay open source developers, but this includes the risk of later loosing them from the community. Would this always be the case – I don’t know (hence the room for discussion at the end of the post).
The answer: Love
One thing I do believe we should do is to be grateful: Send developers kind e-mails, buy their books, link to their blogs/home-pages – show them we love their work. Why am I using the “L” word? Because open source is (as Clay Shirky convinced me in his ~9 minutes video) is about Love:
And in the context of R:
The quality of R would not have been made possible even if all the people who have worked for it where to pay the developers from day 1. I am saying this again: If we where forced to pay to have R developed for us, it would have been more expansive then we could have been able to ever afford (under market norms). Since some of the best statisticians in the world (please correct me if I am wrong), have spent countless hours (days/months/years) to make this software work and support it’s user base, can you imagine how much money that would have cost?
So is money evil for open source?
Answer (IMHO): no!
Money, like a knife, is a tool – not good nor evil.
On the one hand, switching from community appreciation to rewarding with money might turn out to be a dangerous path for the future of R.
At the same time I believe (and I am willing to be proven wrong) that we SHOULD get money collected to our community, and that we should use it to pay people outside our community: graphic designers, UI people, CS students (who are not very deep into the R world), grants for young students and maybe even paying the R developers core team. My current rule of thumb will be that money should be used
only mostly to get skills that are outside of our current community base.
Learning from the experience of other FOSS projects
The questions this post reflects upon are relatively new to us (e.g: how to scale up social relationships in collaboration projects). One of our best sources for solutions is probably the experience of other open source projects. While history may not predict our future, it can still give us ideas and even inspire us of what can be done.
I hope to link here to posts on the topic, if you have any, please link to them in the comments.
(Originally I wrote about WordPress, but after getting responses from some friends closer to the core team – I decided to remove that section so to not misinform people)
I don’t think R developers should be paid. (this is not exact and I erased this sentence)
I believe money should be collected by the community for the community.
Paying R developers is tricky, I don’t know how it can be done in a healthy and stable way (although I believe it can be done).
A good strategy for spending community’s money could be to pay for services that are outside our community knowledge/skill base.
Your opinions are welcomed.