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.
As I have written elsewhere, encountering Linux came as 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 failed, Linus Torvalds and his community
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,
articulated in Fred Brook's classic The Mythical
Man-Month. Brooks predicts that as your number of
programmers N rises, work performed scales as N but complexity and
vulnerability to bugs rises as N2.
N2 tracks 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 N2 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 to explain what I had seen.