Peer review also prevents fewer mistakes from being made in the first place. It changes how people approach their work. It changes the level of care that they take. If you know that thousands of people will be scrutinizing your work and that the errors you make will almost certainly be spotted, and if you care about your reputation, then you take great pains to create error-free work. That is different from the way people work in closed systems -- the way most companies function. Those people usually spend much of their time shifting blame for the errors that they make.
Here's a small example that may be surprising: The documentation for open-source software (the equivalent of user manuals and the like) is often much more effective -- much more helpful -- than the massive volumes that accompany closed commercial software. Open-source manuals may contain some misspellings and grammatical errors, but the information in these documents -- their capacity to zero in on the things that people really need to know -- is just amazing. Why? Because the people who created them really care about good documentation. They volunteered to do it. Also, if the documentation is lousy, the people who created it would get hammered. In the open-source world, bullshit is rarely tolerated.
That's one big reason why the Internet is so reliable. The four most critical pieces of infrastructure that make the Internet work are bind [Berkeley Internet Name Domain], Perl, sendmail, and Apache. Each one is open source and each is extremely reliable, because for years people have been constantly banging on the code, looking at the source, seeing what breaks, and fixing it. So you should not mistake expensive bureaucracy or corporate conventions for rigor. In this case, less "process" leads to better outcomes.
That's quite a flip on conventional wisdom. Are there others?
There is another reason that goes to the heart of how you create value in today's economy. The open-source movement clearly demonstrates that the more smart people you can persuade to work on a problem, the more likely it is that the problem will get solved. Writing code may be a solitary activity, but all the really great hacks have come from harnessing the attention and brainpower of entire communities. Developers who use only their own brainpower in a closed project are going to fall behind developers who know how to create an open, evolutionary context in which hundreds or thousands of people are spotting bugs and making improvements.
What goes for hackers also goes for companies. In the 21st century, one of the ways that companies are going to compete -- and this goes beyond software -- is to compete for the attention of outside brainpower. Remember, no matter how many smart people work for any one company, 99% of the smart people in the world will never work for that company. So how does the company persuade smart people, whom the CEO or the head of hr has never met, to volunteer their energy, their intelligence, and a few hours of their time to help the company perfect a product or improve an idea? How do you get the smartest collaborators, rather than just the smartest employees?
This idea tends to invert the conventional notion of a value proposition. In an indirect but powerful way, the value of a company in the future will be tied to how much value it can offer people on the outside, rather than how much value it can extract from people on the outside. In other words, can companies make it fun, interesting, challenging, and rewarding for people who are not their employees to contribute their time and ideas? Companies that successfully attract outside brainpower will absolutely eat the lunch of companies that don't.
So far, we've been talking about why people work. Let's discuss how people work. How do volunteers who are scattered all over the world, many of whom have never met one another, write code that is more reliable than most closed commercial software?
One of the most powerful features of the open-source model is its capacity to hold down global complexity. The structure of work and communication in the hacker community is decentralized and distributed. Also, many different groups of people are working on many different software modules, each of which is relatively small and simple, and all of which have to be compatible in the end. That's a good way to write software.
Work in the open-source community is organized by projects. With Linux, I'd estimate that at least 4,000 different projects are going on at any one time. The people who work on them are all volunteers. But the authority structure is clear. Authority follows responsibility. If you're willing to take responsibility, you have the authority to make decisions.
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).