What do Marc Fleury, president of JBoss Group, LLC, David Axmark, co-founder of MySQL AB, and Ian Murdock, chairman of Progency, Inc. and founder of Debian Linux have in common? They all agreed at an October technology show that open source software isn't made by thousands of developers, but by small groups of dedicated developers. Usually, according to Fleury, these groups number no more than ten.
What do Marc Fleury, president of JBoss Group, LLC, David Axmark, co-founder of MySQL AB, and Ian Murdock, chairman of Progency, Inc. and founder of Debian Linux have in common? They all agreed at an October technology show that open source software isn’t made by thousands of developers, but by small groups of dedicated developers. Usually, according to Fleury, these groups number no more than ten.
It sounds like heresy, doesn’t it? Isn’t open source development supposed to happen with dozens, nay, hundreds or even thousands of developers? Well, yes, that’s the idea. But, that’s not how it works.
You don’t have to believe them, though. Just look through SourceForge (http://www.sourceforge.com) and you’ll find that most open source projects are written by only a handful of developers.
This isn’t really too surprising. Fred Brooks’ software project management classic, The Mythical Man Month, remains as true now as it was when his wrestling with an early mainframe made him realize that throwing more programmers at a late project just makes it later. Open source development isn’t magical: Brooks’ insight applies to it, too. Indeed, successful open source projects seem — at least to me — to always have a single leader, such as Linus Torvalds, or a core team such as the Perl Porters or the Samba team. And, even in the case of Linux, Linus would be hamstrung without the support of such powerful coders as Alan Cox.
Back in 1999, a University of North Carolina study of Linux developers, A Quantitative Profile of a Community of Open Source Linux Developers, found that most Linux developers only work on one or two programs. Indeed, there were only four developers with more than twenty contributions, and only thirteen were active on more than ten projects. In short, there were darn few programmers working in the most vital jobs.
That isn’t to say though that other programmers don’t contribute. A few lines of code here and there makes any project go more smoothly. And the right code in the right place can mean all the difference between a program that shines like a star and one that’s a black hole.
There are also many other open source programmers whose work never appears in a change log, but who, by developing within open source programs, make them useful for their companies and other users. For instance, there are only a few core MySQL developers, but there are thousands who develop in MySQL, and they’re the ones who’ve turned MySQL from an interesting open source DBMS into an office powerhouse. Still, I’ve noticed some open source programmers — and I won’t name names — who look down on non-core developers. I really don’t like this.
Yes, as Eric Raymond has pointed out numerous times, the reason why many open source developers do what they do is for the sheer egoboo. The pleasure of knowing that any programmer worth his salt can see that you, yes you, are a great programmer.
But, you know, we can’t all be brilliant programmers. God knows I’m not! But, I think that focusing on this misses the point. The other open source developers may not be the primary authors, but they’re the quality assurance, the testers, and the fit-and-finish developers that take open source from being just another development method to being the success story that it is today.
And this isn’t just the open source community patting itself on the back. After all, while we have our success stories, like Linux, the BSDs, Apache, Samba, and so on, so does the proprietary software world with Excel, PowerPoint, and Dreamweaver, to name three of my favorite proprietary programs.
However, thanks to a research project by Reasoning, a leading automated software inspection service vendor, there is objective proof that open source is better. Reasoning, using their automated C and C++ source code inspection service, Illuma, found that there were 0.10 defects per thousand lines of source code (D/KLSC) in Linux’s 2.4.19 TCP/IP stack compared to an average of 0.55 D/KLSC in five different proprietary TCP/IP implementations.
Four of those proprietary stacks had been on the market for over ten years. TCP/IP got the nod for this study because it’s the “fundamental protocol that underlies the Internet” and “the functional requirements are well defined and stable, the implementation is non-trivial, and it is a critical component of every computer system and many embedded devices.”
And, why did open source fare so well? First, it was created by a small team of great programmers. But just as importantly, it’s been vetted by the greater open source community, the thousands who read the code, run the programs, spot the errors, and either report the bugs or fix them themselves.
Together, the open source community, both in small groups and as a whole, produces the best software in the world. It’s as simple and as wonderful as that.
Steven J. Vaughan-Nichols is a long-time Unix guru and technology writer. He can be reached at firstname.lastname@example.org.