Reading 06: The Cathedral and the Bazaar

Alejandro Rafael Ayala
Ayala Hackers Blog
Published in
3 min readMar 26, 2019

For a cathedral model of of software development, software is developed like a cathedral: “carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time” (Cathedral-Bazaar). Essentially, these models are closed off from the outside during development and worked on by few people until it’s completely finished. Contrast this to the bazaar development model where software is released in iterations very frequently and are contributed to by an open community. I guess to some degree, our school projects and homework can be considered cathedral development. I have never really contributed to an open source project, so I haven’t really done any fully bazaar development. I think I have gripes with both for different reasons. As a developer, I’d definitely prefer to work with a bazaar development model over a cathedral model because “in the cathedral-builder view of programming, bugs and development problems are tricky, insidious, deep phenomena” (Cathedral-Bazaar) whereas “in the bazaar view, on the other hand, you assume that bugs are generally shallow phenomena” (Cathedral-Bazaar). Since people are constantly looking for bugs as development continues, it tends to be easier to find the source of bugs since it’s more likely they’re related to newer changes. As a consumer though, I think the cathedral model is good because the software feels more complete at first release, whereas open source software can be pretty buggy especially with earlier releases. I recently had an experience using MuseScore 3 (an open source music notation software), where I got so frustrated with all of the bugs I kept experiencing that I told myself I would only use MuseScore 2 (an older, less buggy version with a separate code base) until MuseScore 3 had a more stable release. Despite this though, one thing I like as a consumer of open source software is that fixes tend to be rolled out relatively fast (MuseScore 3 still has too many for me though) whereas with a cathedral model fixes would probably be slower to come out.

I found the second principle, “2. Good programmers know what to write. Great ones know what to rewrite (and reuse)” (Cathedral-Bazaar) to ring true. Writing and understanding your own code is great, but understanding another person’s code and finding your own use for it can be even better. There’s no point to reinventing the wheel, so if there’s a wheel lying around that works well and you can use, you might as well use it (love you StackOverflow). I found number 9 to be pretty relatable as well: “9. Smart data structures and dumb code works a lot better than the other way around” (Cathedral-Bazaar). There’s nothing worse than getting so deep into a project only to realize that you structured your data really poorly. Sometimes a lot of your really good code depends on those crappy data structures, but you can’t improve the data structure much without breaking that great code. Having a great foundation is essential otherwise you may need to tear your project all the way back down before you can make it any better.

Honestly, I think ESR is probably right. Perhaps back in the day when the Internet wasn’t as good and didn’t have as many people, the cathedral model would be better. I don’t know if the bazaar model has completely won yet, but I think it already has its influences in even big tech companies. Isn’t SCRUM just basically the small team of the cathedral model combined with the bazaar quick iterative release model? I would like to say that the future of software development lies with the bazaar model because the minds of whole communities rather than the minds of a few individuals “can put orders of magnitude more skilled time into a problem” (Cathedral-Bazaar). The only thing that makes me a little unsure about this is money. Sure, some people may work on open source stuff on the side, but right now and probably in the future, money is more important to people. That, and businesses sure love to keep to themselves. Maybe the best we can get from the future is just another hybrid of the two rather than a true bazaar model.

--

--