Reading 07
From your experience, which model of software development is superior: the cathedral or the bazaar? Which is the future of software development? Are the two models mutually exclusive?
In the world of software development, Eric Steven Raymond (ESR) describes two models of software development. The cathedral model is the typical release cycle where development code is private. In contrast, the bazaar model is one where the code is always public; development and release. Both the cathedral and the bazaar are effective for software development, and both methods are tried and true ways to create great software when done right. I think what surprises people is not that both can work, but that the bazaar model can often work better than the cathedral model.
I think one of the misconceptions of the bazaar model is the idea that contributers are just a bunch of random programmers, and that they can’t possibly be superior to a dedicated team within the cathedral model. While it’s true that a dedicated team is effective, there is certainly a lot of power with having many users and contributors. The code does not have to be “perfect”; it needs to be useful and available. “Release early. Release often.” Perfecting the code can always happen later. There will always be ways to improve the quality of the code. Beautiful code is nice, but it’s not essential. “Smart data structures and dumb code works a lot better than the other way around.”
The bazaar model allows rapid iteration and lots more exposure. Personally, I find some solace when using an open-source library because I know that if I encounter a problem or issue, I can always give feedback or contribute directly. Even better, sometimes a fix has already been implemented and it just hasn’t been officially released yet; in these cases, I can live on the bleeding-edge to get the latest update that fixes the issue I’m having. There’s also something to be said about a certain sense of community with the bazaar model that I don’t feel with the cathedral model. Something about working towards a similar goal with thousands of other people around the world feels comforting.
I wonder what the future holds. In some ways, I think the bazaar model will never die. As long as humans are curious about the way things work, we will continue to share information, and I don’t see any deficiencies in the bazaar model holding it back. In other ways, however, I do worry about the vertical scaling/development of hardware. As computers move away from being modular and self-repairable towards singular SoCs designed for custom proprietary hardware and with unique drivers and software, I wonder what the future holds for the accessibility of open software development.