Beyond pursuing a technical passion, why are people willing to work on open-source software?
There are lots of motivations. One is what I call "going for the glory." The open-source world is fiercely competitive. People like being part of a community in which they compete for their peers' esteem. People want to believe that they're working -- and competing -- with the best people in their field. I routinely deal with people who are the best programmers in the world. If you're working for a company, you might measure yourself against a few hundred colleagues. If you're working on a piece of open-source code, you might measure yourself against thousands of people all over the world.
We do keep score in the open-source world. It's just that more people focus on earning the esteem of their peers than on getting a bigger office. But even in an "esteem culture," people need to keep track of who's doing good work and who isn't. Our scoreboard is the "credit list" or the "history file" that's attached to every open-source project. If you do something important to advance a piece of code, that goes on the record and becomes part of the project's history for all time. If you see somebody's name on several credit lists, then you know that person is doing lots of good work.
It's an old idea, really. People who study primate societies make a distinction between two kinds of cultural interactions, agonic and hedonic. In agonic societies, you gain status by asserting dominance over others. In hedonic societies, you gain status by drawing attention to yourself. Open source is a hedonic culture.
If open-source programmers compete for attention, what impact does that have on the way they work?
It's difficult to convince great people to pay attention to you if you don't have a great reputation. To build a development community, you need to attract people by interesting them in what you're doing. You also need to keep them happy about the work that they're doing. Technical sizzle will go a long way toward accomplishing this. But your personality and that of your project matters too.
It's no coincidence that Linus Torvalds is a nice guy who makes people want to help him. It's no coincidence that I'm an extrovert who likes to "work the crowd." For example, one thing that everyone in this community knows about me is that I like firearms. In fact, at Linux conferences, I run an event called "Geeks with Guns." I teach people how to shoot. I do it because I love it, but it gives me a reputation as a somewhat colorful character.
I do need to make one important point: Don't confuse the idea of free software with the idea that it must be created by volunteer labor. Increasingly, open-source developers are getting tangible rewards for the reputations they've established. As venture capital pours into open-source software and as Linux-based companies get started, companies are competing to hire stars. In our world, it's easy to find the stars: Their names are in the projects' credits.
One harbinger of this trend was when O'Reilly & Associates, the leading publisher of books and manuals about open-source software, hired Larry Wall, the creator of Perl, and said to him, "Okay, you're on our payroll, and you get to be 'Mr. Perl' now." There was a pragmatic reason for O'Reilly to do that: When the Perl community flourishes, [CEO] Tim O'Reilly sells more books. But there was a passionate reason too: Tim O'Reilly really believes in Perl. He thinks it's cool. So he has come up with a business rationale to do what he really wants to do, which, in this case, is to support the continued development of Perl. I think that's where much of the entrepreneurial world is going. People are developing business reasons to do the stuff that gives them pleasure. Over time, I expect that more and more people will be paid to work on open-source projects.
For now, though, most open-source work is still volunteer labor. Isn't there still an assumption among the business establishment that if money is not involved, a product can't be rigorous?
If there is, it's a bad assumption. I certainly care about a world in which people do meaningful work. But the real point of the exercise is to develop the best software possible. And in most of the ways that matter, the open-source model is more disciplined and more rigorous than the traditional approach to creating software. The open-source model gets you better software.
One of the core practices used in open-source software is peer review: Because everyone can see the code, everyone can see your work. One obvious benefit of peer review is that mistakes get caught sooner. I call this Linus's Law, after Linus Torvalds: "With enough eyeballs, all bugs are shallow." If literally thousands of people are accessing a piece of code, each one eagerly looking for a nasty bug to fix, it's no surprise that mistakes get caught quickly.
Recent Comments | 5 Total
June 29, 2009 at 5:23pm by Eli Shapiro
On the whole I'm a big proponent of the open-source movement, but I believe this article overstates its importance somewhat. It's true that many great applications, even including some that are used by business and consumers, are completely open source, but the vast majority of software is necessarily commercial. This is mostly because end users can be an inquisitive and impatient bunch and therefore usually require dedicated service and support to be able to use their software at all. In my experience, most open-source apps are for the power user at least (hence Linux, webhosting servers, graphics apps, etc... being the most famous open-source stuff out there).