|The User-Developer Convergence: Innovation and Software Systems Development in the Apache Project|
|Prev||Chapter 4. Hacking||Next|
By the late 1980s and early 1990s GNU had become an extensive collection of tools. Upon having installed the basic Unix operating system, most systems administrators would download and compile the GNU tools for their computers. While the GNU tool chest had grown large and extensive, Stallman still lacked an operating system kernel. This was to be soon remedied by a young Finish computer student.
Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all-nighters to get a nifty program working? Then this post might be just for you :-)
As I mentioned a month(?) ago, I'm working on a free version of a minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I've successfully run bash/gcc/gnu-make/gnu-sed/compress etc under it. [TORVALDS1992](Torvalds 1992)
Like Stallman eight years earlier, Linus Torvalds posted his initial announcement on Usenet. Torvalds was interested in a Unix system to run on his low-end home computer. As a student could not afford the expensive hardware and almost equally expensive license for commercial Unix systems. Minix, a Unix-like operating system written by Andrew Tannenbaum, was freely available at the time. Hurd, the GNU operating system kernel, seemed to be nearing completion. Still, for the fun of it, Torvalds chose to write his own operating system kernel. "This is a program for hackers by a hacker," as Torvalds puts it in his initial announcement Bundling the Linux kernel with the GNU tools, the GNU/Linux operating system rapidly attained interest within the on-line hacker community.
By the early 1990s the ARPAnet had become the Internet, and was widely available with educational institutions across the United States and Western Europe. The Internet had become an important communications channel for the hacker communities. Usenet provided services for on-line discussion, and files were shared using FTP. SunSITE had become a central repository for freely shared software. Linux was freely available from an FTP site in Finland, and developers across the Internet started contributing code to the kernel. After a while Torvalds decided to provide the Linux kernel under the GPL.
Linux, however, was not the only project with contributors across the Internet joining to write software together. The widely popular programming language Perl is developed this way, and has been since 1988. Most of the freely available software found at SunSITE never saw the same attention as Perl or Linux. Most were developed by a single individual or a small group. Some of these groups were geographically co-located, others were distributed across the Internet. It was this Internet based distributed software development that caught long-time hacker Eric Raymond's attention
In 1998 Raymond wrote what has become a seminal essay on Internet based distributed software systems development, The Cathedral and the Bazaar [RAYMOND1999]. With background in his own, fairly popular software fetchmail, he wrote about the new wave of hackers. Raymond sees the Internet based distributed development approach as a way of making "software that doesn't suck", considering this way of working as an effective means of parallelizing the debugging effort. Like Stallman, Raymond is of the opinion the a program's source code should be open and freely available. Raymond, unlike Stallman, does not consider the social side of freely available source code. On the contrary, he sees the use of other people's source code as a way of "scratching his own itch", another of his mottoes. This kind of hacking is just a convenient way for several people to pitch their effort together to write high-quality software. To indicate his differing opinion, Raymond labeled his view of software as "open source".
Particular to this way of developing software, open source software development projects don't put any limitations on the communication between participants. These projects often use a Usenet group or a mailing list for communication, free and open for anyone to participate. Raymond calls it the bazaar, as opposed to the cathedral way of developing commercial software where everyone have to follow a creed or methodology.
Looking at The Cathedral and the Bazaar there are elements reminding of of participatory design in hacking, says Hannemyr [HANNEMYR1998](1998). There are elements of rapid prototyping, iterative development and strong user participation. But there are differences as well. Hacking lacks the formalism found in more traditional development methodology. There is no clear definition of roles, and the careful planning of iterations is non-existent. Raymond does not take his users' participation for granted. Instead he lists three necessary pre-conditions for his work practice to be applicable: 1) The projected system must fill an unfilled personal need for the instigator; 2) the project needs to secure user participation and maintain continued user support; and, 3) the instigator must have good interpersonal and communication skills.