Monthly Archive for July, 2008

Book Review: The Cathedral and the Bazaar by Eric Raymond

I can’t believe I haven’t read this book until now since it intersects two areas of deep interest to me: technology (specifically programming) and freedom. Essentially the book celebrates liberty as a natural mode for creativity and productivity, with open source software as an example. Raymond has two further findings: that openness doesn’t necessarily imply a loss of property rights, and selfish motives are pervasive (and not evil).

When does open source work? And how about computational science?

Raymond’s biggest contribution is that he gives a wonderful analysis of the conditions that contribute to the success of the open approach, quoting from page 146 of the revised edition:

1. Reliability/stability/scalability are critical.
2. Correctness of design and implementation cannot readily be verified by means other than independent peer review.
3. The software is critical to the user’s control of his/her business.
4. The software establishes or enables a common computing and communication infrastructure.
5. Key methods (or functional equivalents of them) are part of common engineering knowledge.

I’m struck by how computational research seems to fit. Adapting Raymond’s list in this light:

1. Reproducibility of research is critical.
2. Correctness of methodology and results cannot readily be verified by means other than independent peer review.
3. The research is critical to academic careers.
4. Computational research may lead to common platforms since by its nature code is created, but this is not necessarily the case.
5. Key methods, such as the scientific method, are common research knowledge.

1, 2, and 3 seem fairly straightforward and a great fit for computational science. Computational research doesn’t tend to establish a common computing and communication infrastructure, although it can, for example David Donoho’s WaveLab or my colloborative work with him and others SparseLab. We were aiming not only to create a platform and vehicle for reproducible research but also to create software tools and common examples for researchers in the field. But at the moment this approach isn’t typical. In point 5, I think what Raymond means is that there is a common culture of how to solve a problem. I think computational scientists have this through their agreement on the scientific method for inquiry. Methodology in the computational sciences is undergoing rapid transformations – it is a very young field (for example, see my paper).

I think open source and computational research differ in their conception of openness. Implicitly I’ve been assuming opening to other computational researchers. But I can imagine a world that’s closer to the open source mechanism where people can participate based on their skill and interest alone, rather than school or group affiliation or similar types of insider knowledge. Fully open peer review and reproducible research would make these last criteria less important and go a long way to accruing the benefits that open source has seen.

Raymond notes that music and books are not like software in that they don’t need to be debugged and maintained. I think computational scientific research can bridge this in a way those areas don’t – the search for scientific understand requires cooperation and continual effort that builds on the work that has come before. Plus, there is something objective we’re trying to describe when we do computational research, so we have a common goal.

Property Rights – essential to a productive open system

The other theme that runs through the book is Raymond’s observation that openness doesn’t necessarily mean a loss of property rights, in fact they may be essential. He goes to great lengths to detail the community mores that enforce typical property right manifestations: attribution for work, relative valuation of different types of work, and boundary establishment for responsibility within projects for example. He draws a clever parallel between physical property rights as embodied in English common law (encoded in the American legal system) and the similarly self-evolved property rights of the open source world. John Locke codified the Anglo-American common law methods of acquiring ownership of land (page 76):

1. homesteading: mixing one’s labor with the unowned land and defending one’s title.
2. transfer of title.
3. adverse possession: owned land can be homesteaded and property rights acquired if the original owner does not defend his claim to the land.

A version of this operates in the hacker community with regard to open source projects. By contributing to an open source project you mix your labor in Lockean fashion and gain part of the project’s reputation return. The parallel between the real and virtual worlds is interesting – and the fact that physical property rights appear to be generalizable and important for conflict avoidance in open source systems. Raymond also notes that these property rights customs are strictly enforced in the open source world through moral suasion and the threat of ostracization.

The Role of Selfishness in Open Cultures

Raymond uses the open source world as an example of the pervasiveness of selfish motives in human behavior, stating that as a culture we tend to have a blind spot to how altruism is in fact “a form of ego satisfaction for the altruist.” (p53) This is an important point in this debate because the idea of open source can be conflated with a diminution of property rights and a move toward a less capitalist system, ie. people behaving altruistically to each other rather than according to market strictures. Raymond eviscerates this notion by noting that altruism isn’t selfless and even the open source world benefits by linking the selfishness of hackers and their need for self-actualization to difficult ends that can only be achieved through sustained cooperation. Appeals to reputation and ego boosting seem to do the trick in this sphere and Raymond attributes Linux’s success in part to Linus Torvalds’ genius in creating an efficient market in ego boosting – turned of course to the end of OS development.