Next: Memes and Mythmaking Up: The Revenge of the Previous: The Revenge of the |
My first encounter with Linux came in late 1993, via the pioneering Yggdrasil CD-ROM distribution. By that time, I had already been involved in the hacker culture for fifteen years. My earliest experiences had been with the primitive ARPAnet of the late 1970s; I was even briefly a tourist on the ITS machines. I had already been writing free software and posting it to Usenet before the Free Software Foundation was launched in 1984, and was one of the FSF's first contributors. I had just published the second edition of The New Hacker's Dictionary. I thought I understood the hacker culture -- and its limitations -- pretty well.
Encountering Linux was a shock. Even though I had been active in the hacker culture for many years, I still carried in my head the unexamined assumption that hacker amateurs, gifted though they might be, could not possibly muster the resources or skill necessary to produce a usable multitasking operating system. The HURD developers, after all, had been evidently failing at this for a decade.
But where they had failed, Linus Torvalds and his community had succeeded. And they did not merely fulfill the minimum requirements of stability and functioning Unix interfaces. No. They blew right past that criterion with exuberance and flair, providing hundreds of megabytes of programs, documents, and other resources. Full suites of Internet tools, desktop-publishing software, graphics support, editors, games -- you name it.
Seeing this feast of wonderful code spread in front of me as a working system was a much more powerful experience than merely knowing, intellectually, that all the bits were probably out there. It was as though for years I'd been sorting through piles of disconnected car parts -- only to be suddenly confronted with those same parts assembled into a gleaming red Ferrari, door open, keys swinging from the lock, and engine gently purring with a promise of power... .
The hacker tradition I had been observing for two decades seemed suddenly alive in a vibrant new way. In a sense, I had already been made part of this community, for several of my personal free-software projects had been added to the mix. But I wanted to get in deeper, because every delight I saw also deepened my puzzlement. It was too good!
The lore of software engineering is dominated by Brooks's Law, which predicts that as your N number of programmers rises, work performed scales as N but complexity and vulnerability to bugs rises as N-squared. N-squared is the number of communications paths (and potential code interfaces) between developers' code bases.
Brooks's Law predicts that a project with thousands of contributors ought to be a flaky, unstable mess. Somehow the Linux community had beaten the N-squared effect and produced an OS of astonishingly high quality. I was determined to understand how they did it.
It took me three years of participation and close observation to develop a theory, and another year to test it experimentally. And then I sat down and wrote ``The Cathedral and the Bazaar'' (CatB) to explain what I had seen.