Emergent open-source (Irrational Software)
I just read in Emergence about how Slashdot works. Steven Johnson mentions the simple goals for the moderation system, which can be found in the Slashdot FAQ:
- Promote quality, discourage crap.
- Make Slashdot as readable as possible for as many people as possible.
- Do not require a huge amount of time from any single moderator.
- Do not allow a single moderator a "reign of terror."
This made me think again about what would be required, in terms of such goals, to enable a well-designed system to emerge. Clearly, for this to work as well as possible, the programmers need to be in-sync with each other. They need to have a shared vision about both what the system is supposed to be, and about what constitutes a well-designed system. They must be capable of communicating via code (as well as face-to-face). They need shared values. A common culture.
I got stuck on the last chapter of the online version of Eric Raymond’s The Cathedral and the Bazaar (available here). While I do find the field interesting, the book didn’t quite live up to my expectations. What he writes could be true about emergent programming, but it’s more about producing code and then unleashing thousands to debug it. The idea seems to be that quality is high when all bugs have been killed.
I’m sure there are lots of high-quality open-source projects, but I suspect that these are very strictly controlled by a small number of people. Perhaps they have very high standards for accepting submissions, or regard the submitted patches as specs for reproducing bugs, and then fixing them themselves. I would like to hear about a true emergent open-source project, where the maxim is “Coding is parallelizable”, not “Debugging is parallelizable”; where the designs exhibit clarity and development is sustainable.