Reinventing Discovery - Michael Nielsen [26]
With the Linux kernel it became clear very quickly that we want to have a system which is as modular as possible. The open-source development model really requires this, because otherwise you can’t easily have people working in parallel.
. . .
With the 2.0 kernel Linux really grew up a lot. This was the point that we added loadable kernel modules. This obviously improved modularity by making an explicit structure for writing modules. Programmers could work on different modules without risk of interference. I could keep control over what was written into the kernel proper. So once again managing people and managing code led to the same design decision. To keep the number of people working on Linux coordinated, we needed something like kernel modules. But from a design point of view, it was also the right thing to do.
This pattern of conscious, relentless modularity is seen in most large open source collaborations. It’s often required even in projects where modularity looks as though it would be easy to achieve, such as Wikipedia. On the surface, Wikipedia appears to be merely a collection of encyclopedia articles, with a simple, natural modular structure: the writing is naturally divided up between the different articles. But that superficial modularity is only part of the story. Writing an encyclopedia involves many tasks beyond editing the articles, and that additional complexity is reflected in Wikipedia’s structure. Perhaps the simplest example is that every Wikipedia article has an associated “Talk” page. If you don’t know what a Wikipedia Talk page is, start up your web browser, and load Wikipedia’s “Geology” article (http://en.wikipedia.org/wiki/Geology). At the top of the page, you’ll notice a tab labeled “Discussion.” Click on the tab, and you’ll be taken to the Talk page for the “Geology” article. That’s where discussion about the article goes on among Wikipedia editors: discussion of shortcomings in the article, discussion of how the article can be improved, and even discussion of whether the article should exist in the first place. Such Talk pages are a locus for conversations about many tasks that are essential for Wikipedia to work properly, but that can’t be carried out on the article pages. Beyond the Talk pages, Wikipedia also has a vast array of other special pages, each aimed at specific tasks. The “Village Pump” page, for example, is for discussion of Wikipedia policy, technical issues, and so on. There’s a page listing articles being considered for deletion from Wikipedia. Many Wikipedia pages deal with topics only of interest to the Wikipedia community itself. Some of these pages are funny: there’s a 1,181-question test to see if you’re a Wikipediholic (for anyone who willingly sits through the entire test, I think the answer is obviously “yes”); a list of articles with freaky titles (“22.86 Centimetre Nails,” the metric version of the band “Nine Inch Nails,” now unfortunately deleted); and many others. Some of the pages are sad: there is a page listing deceased Wikipedians, with links to their user pages, where you will often find grieving communities of friends and family. Wikipedia is not an encyclopedia. It’s a virtual city, a city whose main export to the world is its encyclopedia articles, but with an internal life of its own. All those pages—the Talk pages, the eciges, the community pages, and the articles themselves—reflect vital tasks within Wikipedia, and help break up the enormous problem of running an encyclopedia into many smaller tasks. And, as in