2013-04-10

The cathedral & the bazaar (book review)

The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary
Eric S. Raymond
Feedbooks, 2000

Open source software is increasingly popular these days. As I got interested in this phenomen, I decided to read some books about this topic. In this post, I'll review The Cathedral & the Bazaar by Eric Raymond.

The author (co-) developed Unix and open source software since the early 1980's. In the Unix tradition, these applications were small and single purposed. Till Linux was released, he believed there was a certain complexity above which a more centralized, a priori approach was required. It needed to be built like cathedrals, carefully crafted by individual wizards or small bands of mages working in splendid isolation. However, he found out the Linux community works different, despite its complex product. It releases software early and often. Its founder, Linus Torvalds delegates everything he can and he's open to the point of promiscuity. It seemed to resemble a great babbling bazaar of differing agendas and approaches out of which a coherent and stable system could seemingly emerge only by a succession of miracles. And it works!

How could this be possible? Raymond found out by doing. He met a problem with his e-mail client and started working on a piece of software called popclient which later became fetchmail. As internet access became cheap, it was easy to reach contributants all over the country and even abroad.

Many open source projects, are initiated by a problem of a software developer. He (or she) starts engineering and releases an early version through the web. Others - many call themselves hackers - get interested and start testing and co-developing. If the code isn't good enough, they throw it away and start again. The result is often good and simple software.

From a social point of view, a community initator attracks people e.g. with a nice puzzle. He interests them by discussing and designing possible solutions. During the project, he keeps them happy by rewarding them. These rewards can be honouring their ideas or code, features added or removed (!), etc. It's not about money. An attitude of egoless programming is needed. There are no territories and collegial reviews are strongly encouraged.

The author mentions some differences according to the development of proprietary software. First of all the open source community doesn't meet strict deadlines. Furthermore there's almost no budget. Lastly he discusses the role of project managers in traditional development. It's their job to claim and defend resources, to motivate project members and to keep an eye on the progress and scope of the project. Good project managers, like a friend of Eric, are busy with these tasks. However, in open source projects these are obsolete as people contribute voluntary.

In The cathedral & the bazaar, Raymond explains how open source software is created. He became aware of the way Torvalds and the Linux community developed their operating system. He took over their way of working. He guides his readers through the process of (re-) engineering an application explaining the lessons he learned. The book is not technical in a sense of detailling software code and so on. Therefore, it's readable for a broad adience. According to the open source principles, the book is available for free. There's also a short video of the book.

For me, the book was interesting to read. I learned a lot but there's one question left. What about developing open source software not initiated by a problem of a software engineer? E.g. for business applications. Or what about open source development at companies like Canonical, IBM, Oracle and RedHat? What are their drivers to create useable and reliable applications?

Happy reading!