The perils of mixing open source and money
david.heinemeierhansson.com
david.heinemeierhansson.com
I consider myself a reasonable person. This quote makes me angry. This comment seems willfully obtuse in my opinion. Not noticing the immense institutional support and money behind Rails is truly silly. I don't want to come off as mean spirited, but he is very silly for saying this.
The open source projects that are popular like Linux, nginx, and other system ops stuff are obviously popular and have benefited immensely from indirect money (in terms of institutional support). They are vastly superior compared to anything a company could built closed source. We often cling to the idea that open source software is superior to closed source software, but a quick survey of the landscape of open source software will show that this is patently false. Where there is obvious demand for a software product that lots of interested parties need just to maintain operability, the open source solution will usually be vastly superior if not mildly better.
But, take a look at the vast amount of software that is created on github that is open source and you will see a lot of (self-admitted) crap (I have made a lot of self-admitted crap). This crap might have the kernel of a good idea in it, but it never got the time it needed. I'd actually like someone to name an open source software project that we all know and love that hasn't benefited from immense institutional support.
David, not all of us get to be part of incredibly profitable companies that can afford to fund our adventures in coding. Suggesting that Rails hasn't benefited from institutional support and money is just deceptive and something I can't stomach. It's something we can't measure, but that doesn't mean it's not there.
Honest question, what about Debian? I know they had a year of FSF sponsorship back in like '94 but they seem to be heavily volunteer based with even the Project Leader keeping a day-job to pay the bills. I know they take in donations but they're generally who I point to as an example of what a Free/Open Source Software project can be.
edit: '93-->'94
Debian had funding at the right time, crossed the rubicon and now has enough momentum to continue. Not all projects share the same luxury, and I view the funding as an attempt to make projects more professional
But that's even besides the point. Companies letting their employees use company time contributing to OSS has been great. As the first sentence of the article points to, I'm talking about projects raising money directly from the community.
Edit
Also, I don't want to minimize the effort it took for you to create Rails, build momentum behind it, and get other people excited about it. What if Kickstarter, et al is just a new medium to help empower other people to do what you did?
Two recent OS fundraising successes I can think of are funding for further development of Typed Clojure, and the integration/rewrite of South into Django core. Both projects were in production use when they raised the money!
Imagine today, someone pitching to build a new async web framework in Livescript. "Why not Ember/Meteor/Angular!?" "Why not Javascript?!". It could be that someone comes up with a truly killer framework by utilizing Livescript's features the way DHH did with Ruby and Rails, and if they did I'd happily use it, but I wouldn't put my money on it today.
There is a psychological difference - if you transfer the mindset from 'helping out' to 'work for hire', then suddenly you have to pay "enough" (which will be a huge amount for many projects) or you'll get less stuff done than you'd get for free.
The way I see it what you have done is way better.
And this strategy is really what people should be doing as opposed to simply cashing in goodwill:
"Take Ruby on Rails. More than 3,000 people have committed man-decades, maybe even man-centuries, of work for free. Buying all that effort at market rates would have been hundreds of millions of dollars. Who would have been able to afford funding that?"
Work for free that has benefited many people including you. Can't put a price on that.
You created Ruby on Rails and it was like well enough that all those people "more than 3000 ... man-decades ..." have put their time into the project and you have benefited greatly because you are the person that most people associate with Rails. Not any of the 3000 contributors. And that notoriety is what pays off in droves. Even if you passed up a few dollars (debatable by your argument?) you've gotten something way more valuable.
I think what he's taking aim at more is that he did this for free of charge and did not require any fundraising campaign to get it off the ground (or continue it). And it's the other freedom (in his case, libre) that allowed him to do whatever he wanted, on whatever whim he wanted. There was no hard deadline (except those he made) imposed because of funding constraints. And from that perspective, he's absolutely right: not beholden to anyone else's money or rules is the ultimate freedom to be as creative as you want to make whatever you want.
Because it's possible now to get a project funded on something like Kickstarter, there's less freedom when that happens because money becomes the ultimate driver. If it wasn't, then there'd be no need for it and work on the project could take any form over any timeframe.
OpenSSH might count, from the rant on their homepage:
Please take note of our Who uses it page, which list just some of the vendors who incorporate OpenSSH into their own products -- as a critically important security / access feature -- instead of writing their own SSH implementation or purchasing one from another vendor. This list specifically includes companies like Cisco, Juniper, Apple, Red Hat, and Novell; but probably includes almost all router, switch or unix-like operating system vendors. In the 10 years since the inception of the OpenSSH project, these companies have contributed not even a dime of thanks in support of the OpenSSH project (despite numerous requests).
Why did IBM, Google, etc. Choose Linux as a platform? Out of courtesy? :-)
I can't help but wonder if this blog post would have been received better had it been written by someone not as wealthy as David.
Rails 1.0
It's easy to work on things for free, but how do you know that people value them if they simply use them for free. Attaching money to a pursuit that was previously free can also act to greatly encourage the continued existence of the project in the face of burnout and uncertainty.
More subtly, I find that having monetization as a goal of a side project can creep in in a lot of ways that aren't really beneficial to the project. Take even just writing something. Sometimes I'm frustrated by the information available online on a subject, and want to spend a bit on writing something to set the record straight. Sometimes this makes sense to publish myself. Other times it makes sense to write or improve a Wikipedia article. This is an interesting tradeoff, because it's basically trading likely many more views (therefore likely more impact) if I write it on Wikipedia, versus more control and authorial credit if I post it myself. From a monetization perspective, writing on Wikipedia is rarely the optimal choice; but from the perspective of getting the information out there, it sometimes is.
I think the picture the OP has is closer to the situation in scientific research, where you can replace kickstarter funding by grants from a funding agency. Many would claim that today's science research situation is broken, with scientists chasing grant money and low-hanging "high-impact" fruit, instead of taking risks working on the really challenging problems (large time-scales and investments) with uncertain results.
I think both perspectives have their place and it is important to have a balance between the two. In the case of research, one can argue that tenure is supposed offer security as opposed to an industry job, but it's also true that incentives are strongly tied to research productivity, and it's next to impossible to do research without research funding. If I understand the OP's perspective, he's okay with companies paying for developer time (kinda like tenure) as opposed to developers chasing grants. OP is drawing attention to the possible consequences of going overboard in this newfound enthusiasm/method for funding FOSS.
The best use of this strategy has been integration of South into Django itself. The funding for this went above and beyond what was expected as everyone released the immense value of getting this work done. Also, I don't believe anyone is getting rich doing this. In the case of South, there was a genuine request of "hey, I can do this, but I can't make too much progress in my free time".
Using Ruby on Rails is a little disingenuous example too. It's had the backing of its main company (37signals) since its inception.
I do believe that these things will self-adjust itself. On face value, DHH makes interesting arguments. But, projects that are getting funding are being done by people that are already intimidate with the project. Also, the rates that are being set for the hours that will be involved are hardly market rate.
What I love about this new model, is that it can push projects into the mainstream whereas companies start getting involved and allow their employees to spend time making fixes and improving the projects.
Another example of this was Microsoft's financial support for the jquery UI team for building the grid. They funded I believe at least one developer's salary to get the work done. I don't think anyone would argue that this was a bad move as the jquery team was still in control of the project and the timeline (which has definitely been pushed back with regards to the grid).
Until now every single awesome open source project has managed to take off without a kickstarter campaign. Nowadays everyone promises to deliver an awesome open source project if you first provide funds.
I have donated to many open source/free software projects, either directly or through crowdfunding when they had a specific goal (eg libre graphics meeting, a full time dev to refactor kdenlive).
But I am really skeptical of someone who wants money before he delivers anything. Free software needs the kind of love that money can't buy in order to be successful.
I will gladly help free software projects but not so gladly free software promises.
I also think the point regarding focus is misguided: if the money is specifically for embellishments (e.g. 100% compatibility), then you are in fact more likely to embellish
Finally, Ruby on Rails happens to be an exceptional example in terms of traction. Most open source projects never come close because the addressable market is smaller (the set of all people supporting a particular ruby gem is a subset of the people interested in ruby) and in those cases a bit of extra money is enough to take a hobbyist effort to a production-level product. That extra work takes time and money (for example, sitting there and validating certain results by hand) and oftentimes won't happen with an open source project.
In addition, many of these projects benefit from contributions by programmers who are employed elsewhere, but are permitted/encouraged to contribute on company time.
Basically, I would argue that open source and money have always been inextricably mixed and always will be. If you don't want to suppport a particular person or project, that is of course your right, but I don't agree that funding is some sort of alarming development.
Maybe I'm wrong, but just from passive observation, it seems like for projects which haven't even been started at the beginning of the Kickstarter campaign, success stories are the exception rather than the rule.
It's so easy for someone to not manage expectations properly, especially in the early stages when they're trying to get the attention of potential backers. It's so easy to underestimate the time involved in any sort of creative venture that isn't 100% specced out ahead of time, whether it's software or an RPG supplement or a gadget or whatever. Software development time in particular is insanely difficult to predict.
I strongly feel like Kickstarter is best for projects that are essentially complete, but need funding for mass production or other costs related to distribution. The danger from Kickstarting open source projects isn't so much from money somehow polluting the goals of a project, as it is from the whole thing just blowing up into a nightmare for everyone involved. It's hard enough to predict timelines and establish requirements and manage expectations for one manager, I can't imagine what it would be like when trying to keep hundreds or thousands of managers happy and on the same page.
Well, I am sure DHH means "nominal cost", but the cost is certainly not zero. But it degrades economic discussion when people misuse the word "cost" to mean "currency transacted". Inevitably one of the interlocutors wanders down the trail and marvels, "the cost is zero, so much resources were saved!"
Well no, the cost is not zero. Things other than currency were transacted.
So: the answer is to keep FLOSS development from getting funded????
The real answer is for everyone to have a Basic Income so that we can all eat and have a roof and healthcare at a minimal level. Then people can make all this great FLOSS and do it even better and it will pay off for the world FAR more than if we tried to pay directly for the development work in a type of market exchange system.
But given the actual state of the world, giving a FLOSS developer some money to pay his rent while he focuses on FLOSS is NOT a bad thing.
I am reading Ben Franklin's autobiography and came across this quote which I think also neatly sums up a point you omitted:
"...as we enjoy great advantages from the inventions of others, we should be glad of an opportunity to serve others by any invention of ours; and this we should do freely and generously."
What are the perils of the other sources of money in open source?
For quite a long time the best documentation and guide for using Rails was a book.
Quite a few of the top contributors to Rails have published books about it.
Documentation is very much a weak point for open source. Should we criticize those who contribute to open source and request money for the documentation?
If not, why spread FUD around the idea of asking for direct monetary support of the code itself?
Now I read a well written article on HN about exactly the question of how to encourage open source without ruining the exact thing that makes it work and think "Hey, there will be at least a bit of an interesting discussion in the comments. Maybe some new ideas about how to retain social norms while encouraging more open source work".
So was the point hard to understand and I only think it was clear because I'm on the same page? Why are there barely any comments on point, and the majority seem to just have wilfully ignored it and written whatever was on their mind concerning the author, open source and money in general?
A citizen revenue seems to be the easiest first step in this direction. You could think of it as a generalized kickstarter project, without the potential drawbacks of kickstarter.
1. Rails, nginx and other stuff that is used by developers generally has a higher chance of getting useful contributions and institutional support. People use this stuff professionally, if they run into a limitation, they contribute back for pragmatic reasons.
2. Firefox, Ubuntu and other open source consumer products are pretty hard to do with nothing but unpaid volunteers. Some projects pull it off (KDE comes to mind, although several distributions employ devs to work on it), but in general it seems pretty hard: Even if you find enough skilled developers, what about UX? What about design? What about marketing? What about PR? Would Firefox have made it in 2004 without the NYT ad?
Its almost cluttered as amazon