There’s an interesting study of Linux kernel development that’s been doing the rounds recently. Published this month by the Linux Foundation, it makes for fascinating reading.
While it concentrates on the kernel itself, the report is still exhaustive:
- Covers a period of over 3 years
- Spread over 14 kernel releases
- Relating to 3621 lines added, 1550 lines removed and 1425 lines changed
- Forming the output of over 3600 developers from over 270 companies
Some of the key takeaways include:
- The individual development community has doubled in the period under review
- The top 10 individual developers accounted for over 15% of the output
- The top 30 individual developers accounted for around 30%
- The top 10 contributing “groups”, including companies, account for over 75% of the output
But the most important assertion made by the report is the following:
Over 70% of kernel development is demonstrably done by developers who are being paid for their work
And you know something? I agree with a lot of the report; there is a lot that I have learnt from the report. But that one conclusion, that nearly three-fourths of development is carried out by paid developers, that doesn’t quite sit well with me.
I could be way off beam here, but my hunch is that the conclusion could be wrong. Why? I think it has something to do with the Because Effect.
Yes, the developers are paid. Yes, they are paid for their work. What I am less sure of is that the work they get paid for is the work that contributes to the kernel. Over the years I have been in many situations where developers have asked me whether they can contribute to opensource projects, but much of it has had to do with things like opening ports.
I am sure that a very high percentage of the output (in the Linux kernel, over the last three years) has come from employees of commercial organisations. But my gut feel is that these developers contributed the effort and the code because it made their jobs easier, because their contributions helped them solve problems, rather than because they were directed to complete “assignments” or “work packages” related to the kernel.
It’s a question of motive.
As more and more firms adopt Linux the community of developers will grow. This is not surprising. As more and more firms adopt Linux there is more of a market for other firms to make money because of Linux rather than with Linux. This is also not surprising. And a small number of firms will actually continue to make money with Linux, if you want to call the sale of distros and support and documentation and training and consultancy a “with” proposition.
As all this happens, the bulk of the growth in consumption of Linux takes place in commercial organisations, so it is not surprising that the bulk of development of the kernel takes place via the efforts of people in those organisations.
My hunch, however, remains. This is not paid work. It is voluntary work done by people who do get paid, paid to do other things.
I may have got this completely wrong, and am happy to be proved wrong. I will learn.
Views?
A few developers are paid full-time primarily to work on open-source projects, but this is usually because open-source software development is a core business for their employer.
The long tail of contributors, comprising the vast majority of individuals, and perhaps the slender majority of the code, consists of people like me who only contribute because they need to fix or improve a tool they’re using in their day job.
Even then, I suspect the primary motivation for submitting a patch is often laziness; it’s easier to get a patch merged into the next version than it is to maintain an in-house patch.
The consclusions of the report don’t surprise me but as yourself I have no way of proving or disproving it. What I do know is that companies such as Novell, RedHat, Sun and IBM have kernel developers directly contributing to the Linux Kernel. The OSDL has been supported by a range of Global Organisations and under which Linus Torvalds and others work. I believe this was a necessary step to make the step in to the Enterprise. At the end of the day hardware has to be bought for testing/porting, regression tests have to be performed, third party device drivers have to be incorporated which all needs resources and money. As Linux has become a core strategy for many companies such as IBM and Oracle then they have contributed towards its development in their own interests. I like Linus’s pragmatic approach towards the adoption of Linux and his realisation of having to work at the interface of propietary software and GPL’ed software. Kernel development is highly specialised and requires a certain skillset that not all developers have, so I’m not convinced there will ever be a huge pool of developers here or even whether it will be good for the Linux Kernel. You only have to look at some of the deep seated Debian issues to realise that there are major pitfalls. Linus and the Kernel developers have done an amazing job of managing such a complex process. I don’t know if people remember Linus’s handling of the change of Source Control to his own GIT tool – sheer genius!
Linux kernel developers who work for companies have to be collaborationally amphibious: answerable both to management and to the rest of the kernel developers, some of whom work for the employer’s competition. A developer can’t get too wild and woolly, working on something for the kernel that’s completely unrelated to the employer’s interests, or singlemindedly push for the employer’s interests in a way that would hurt other collaborators.
Hey JP, Jitendra from SezWho here…Too bad about the Phishing attack…Please let me know if I can do anything to help out with restoring the site. Thanks, Jitendra
I used to work for Novell, and depending upon which project you work for, the level of contribution and more importantly it’s motive changes quite a bit.
There are teams that work solely on the kernel, and are tasked with improving quality and adding extensions to make life easier for other teams.
There are also several teams, that write peripheral code that strictly stay within the confines of Novell’s specific distribution, but it later adopted by several others.
Some examples 3D desktop (I think it was called Beryl or some such thing), FSpot (iphoto like app), the Gnome music manager (I forget the name). All of these were then adopted by others like Ubuntu.
Apart from these there are also developers who commit code, coz it makes their task easier (as you hypothesized). Typical examples would be developers of storage solutions using linux or data center management apps, that need some infrastructure components in the distro, to get their task done.
But, I think that most part of that 70% is due to companies developing solutions on top of linux, and that requires certain features in the core and hence the motive is mostly to enable selling linux based solutions.