As much as we may like the myth of the hobbyist developer, no one codes for free anymore. Well, not quite “no one,” but according to Dirk Riehle’s recent academic research, at least half of all open-source software is written by paid developers during work hours. And if Linux is any indicator, the percentage of 9-to-5 open-source development is only going to increase over time.
Get paid to give away code
As much as 50% of all open-source code gets contributed during work hours, which Dr. Riehle and his colleagues characterize as 9:00 am to 5:00 pm. Were we to add in later hours, accounting for the fact that many developers start late and end late, that percentage would almost certainly go up.
Here’s what the code contribution profile looks like for Linux (Figure A):
Linux code contribution profile.
And here’s the data for over 600,000 Ohloh-analyzed open-source projects and their 3,000,000+ contributors (Figure B):
Code contribution profile for other open-source projects.
Looking at the charts, it’s evident that roughly twice as much open-source development gets written on a typical work day compared to weekend days. Not just that, but most work gets done between the hours of 9:00 am and 5:00 pm, with lunch and dinner breaks interrupting work.
In short, open-source developers look just like average employees in any industry when it comes to their work habits.
More open source skews commercial
This makes good sense if you’ve been paying attention to open source’s rise. From Hadoop to Android to MySQL to Puppet, open source now accounts for large chunks of the software we use to build and manage applications. Given its value, companies increasingly want to invest, and the way you invest in open source is with code.
This has translated into an ever greater percentage of open-source code being written by paid/sponsored developers. As Evangelia Berdou described in her Ph.D. thesis years ago, “Paid developers are more likely to maintain critical parts of the code base” because “The ability to work full-time on a project allows paid developers to develop their technical skills and their understanding of the code base to a greater extent than volunteers who usually contribute in their free time.”
Hobbyist developers, in other words, generally struggle to commit the amount of time necessary to keep up on a project and become proficient in it. Paid developers can focus on the project and are in turn entrusted with more responsibility within the project.
Even more interesting, however, is the researchers’ finding that “from around 2007 through to 2010, increasing amounts of working time work in relation to spare time work was being spent on the Linux kernel. Starting in 2010, this growth largely plateaued.” That is, over four consecutive years, more and more of Linux kernel development became a 9-to-5 job, though this trend has reached a plateau since 2010.
General open-source development, however, has not followed this same trend. Not in aggregate, anyway. While the researchers don’t break out different projects, I would assume that successful open-source projects see much the same pattern as Linux: with success comes more commercial involvement, and with commercial involvement comes sponsored open-source development, which will tend to happen during normal work hours.
Who will control open source’s future?
While this shift toward paid open-source development is mostly good, it does introduce risks. I’ve found open-source developers to be a pretty independent lot, but there’s always the risk that companies will seek to control projects by hiring their top contributors.
Take OpenStack, for example.
In a separate article, researchers uncovered OpenStack contribution patterns. What they found is true of nearly all open-source projects: a small percentage of people do most of the work.
“OpenStack, as many other FOSS projects, has an uneven contribution pattern where a small group of developers has authored a major part of the project. In summary, 80% of the commits have been authored by slightly less than 8% of the authors, while 90% of the commits correspond to about 17% of all the authors…. The OpenStack Foundation estimates that around 250 developers work professionally in the project.”
This means, of course, that it doesn’t take many hires to effectively control an open-source project. Even for large projects, like the Linux kernel, there are relatively few contributors that do a bulk of the work, though not quite as bunched as OpenStack’s contribution patterns.
According to the Linux Foundation, “there is still a relatively small number who are doing the majority of the work. In any given development cycle, approximately 1/3 of the developers involved contribute exactly one patch. Since the 2.6.11 release, the top 10 developers have contributed 30,420 changes — 8.4% of the total. The top 30 developers contributed just over 18% of the total.”
Even so, it is the data on Linux that should give us the most hope. After all, the more successful a project, the more developers (paid and unpaid) pile into that project, which makes it harder for any particular company to control the code by simply hiring a few developers. This may be the mark of a truly great open-source project: it has so many developers that it becomes too big to fail (because of any individual contributor).