Eric S. Raymond’s classic essay, “The Cathedral and the Bazaar,” first published in 1997, set out for the first time to systematically define the technical, philosophical, and sociological characteristics of what is now commonly known as the “Open-Source Movement.” The essay proved highly influential in the hacker community, the popular media, and the software business world, and was later expanded and collected with subsequent Raymond essays in book form. (See the book on Amazon. I will here refer to the edition of the essay that appears in the second edition of this book. Its other essays are considered in Part II and Part III of this series.)
Open-source software is not owned by anyone; it belongs to the community of developers who code it. Anyone is free to look at its source code and modify it if she desires. Significant examples include the Linux operating system, the Apache web server software that powers most of the Internet, the popular Mozilla Firefox web browser, and Sun’s OpenOffice.org suite of office programs. By contrast, closed-source software is owned by a particular individual or company, and its development is a closely-guarded trade secret; only compiled binaries are released to customers. Thus it is impossible for end users or other parties to extend or modify the software to suite their needs. Prominent examples include the Windows and Macintosh operating systems, Microsoft Office, and Adobe Photoshop.
The history of open-source, for Raymond, is tied up with the history of Unix. Developed in the late sixties and early seventies by Ken Thompson at Ball Labs, Unix was a modular operating system that could be ported to different computing architectures (previously, operating systems and all other software were developed for one system only). Hackers (understood as a cohesive networked community of programmers who code in their free time, regardless of their day jobs, and to be distinguished from “crackers,” who crack other people’s software) immediately took to Unix. But as it was commercialized, in various flavors, by Bells Labs and others, hackers found that restricted access to its software ran counter to their pioneering, collaborative, share-with-everyone ethos. Thus Richard Stallman formed the Free Software Foundation in 1982 in order to make a free clone of Unix. By the end of the ’80s he had succeeded in producing most of the tools necessary for a free operating system, but had failed to code a working kernel, the core component. Linus Torvalds stepped into the lurch, quite independently, and produced a fully functional Linux kernel by 1991. Linus’ politics and development methodologies differed significantly from Stallman’s, and it is the former’s that Raymond champions in his essay.
The Free Software Foundation, as characterized by Raymond, is politically anti-capitalist (opposed to the selling of any software) and sociologically hierarchical: they tightly control the development of their software, then give it away for free, spreading their anti-business message along the way. Raymond believes this to have hurt the movement significantly by incurring the distrust of businesses that use, purchase, and develop software. Raymond (who is a staunch libertarian) advocates a more business (and capitalist) friendly form of hacking, wherein open-source development is harnessed to produce software that is far superior (in flexibility, modifiability, features, security, and longevity) to its closed-source rivals. In short, Raymond hopes that CEOs will come to understand that open-source development is superior—from a business perspective—to closed-source development, and insist on using it (if a purchaser) or opening their code (if a developer). Thus Raymond advocates terming the software in question “open-source” rather than “free,” emphasizing its development model rather than anti-capitalist politics. Torvalds is Raymond’s poster child for this ethos: he radically changed the way open-source software was developed by allowing thousands of developers to work on the project simultaneously, and releasing versions constantly, relying on the community of bug testers to find the problems and submit their own tests. This strategy was wildly successful: Linux is the most stable and secure operating system today, and is used on the majority of critical web servers.
The “cathedral” of Raymond’s title is the traditional model of closed-source software development. A group of developers, with restricted access—slowly and reverently build a large structure. It is released to end users when it appears to be finished. When those users report bugs, the developers attempt to replicate and then fix them. In the bazaar model, however, anyone who wants to can have complete access to the project, and is free to commit anything she wishes. Project managers decide which patches to include and which not to, but are generally open to anyone’s contributions. The result is a large, enthusiastic, highly-motivated developer community. Because many of the developers of open-source software are also users, when they discover bugs, they often fix them themselves, submitting patches to the maintainers for inclusion in the next version. The reason that the seemingly chaotic bazaar system works is this simple insight: most of software development involves not the writing of new code, but hunting and fixing bugs. This is what makes closed-source (cathedral) building so expensive, and open-source (bazaar) development so efficient: Raymonds calls this “Linus’s Law”: “Given enough eyeballs, all bugs are shallow.” (30) Or, reformulated, “Debugging is parallelizable.” (32)
The larger the software project, the more it benefits from the open-source model. This is because open-source counteracts “Brooks’s Law,” which states, roughly, that the complexity and communications costs of a project rise with the square of the number of developers, while actual work accomplished only rises linearly. Thus traditional software development becomes increasingly less efficient as it scales up. Open-source, however, strongly mitigates this law by giving everyone equal access to the code, and focusing development on debugging (which many can do efficiently) instead of constructing an impermeable program (which is impossible to achieve and inefficient to approximate).
Finally, open-source fundamentally involves volunteer effort. Even though lead programming teams on many open-source projects are on salary, most of the programming effort comes from coders motivated by their love of coding and the prestige that they win within the community when they release important software. That is, because anyone can see the underlying code, their work is “out there” for all other hackers to evaluate. Pride become a strong motivating force. For Raymonds, this sort of software development is play, and it is precisely the harnessing of hackers’ enjoyment (he calls it “joy”) in this kind of play that makes open-source projects—even enormous ones like Linux—work so efficiently.
In Part II, I’ll look at the sociological and legal elements of open-source project organization.
The book is available on Amazon.
An online version of the essays collected in the book are available from the author’s site, here.
-ZHTagged with: bazaar • cathedral • eric raymond • firefox • free software • linux • microsoft • mozilla • netscape • noosphere • open-source • richard stallman • vendor lock-in