Cathedral or bazaar? Bourgeoisie or proletariat? See title
🅱️ azaar vs. Cathedral
Cathedral or bazaar? Bourgeoisie or proletariat? See title - in my experience, the bazaar model of programming is far superior to the cathedral model, and I have seen both models in action firsthand. Spring of 2019 is when I first began getting involved in open source communities - whether it was publishing my own open source programs or projects, making minor contributions to my friends' or others' projects, joining IRC channels, etc. I really enjoyed the collaborative aspects of Open Source and I found the community to be welcoming and encouraging... often in its own way (i.e., "RTFM"). I also have been a part of the cathedral model through internships and research opportunities. While I definitely prefer the bazaar model, I totally understand why the cathedral model has not been completely extinguished. The cathedral model lends itself to secrecy, and there's nothing more important to being competitive as a company than intellectual property. The lessons ESR shares that he learned while maintaining and developing fetchmail resonate with me in supporting my argument for why the bazaar wins. The first lesson to me is the most important lesson of all, and is honestly the primary lesson needed for understanding why the bazaar is superior because most if not all of the other lessons ESR shares build off this:
- Every good work of software starts by scratching a developer's personal itch.
The primary reason the bazaar model wins is because developers are truly doing what they want, not what someone else wants them to do. Notice how this doesn't mention scratching the board members' itches or the CEO's itch. Later lessons, such as the one that regards software testers as the most valuable, treating users as co-developers, and releasing early and often all stem from this. If you have beta-testers sending you bug reports as well as possible fixes for those bugs, that should (at least in my case when someone raises an issue with my code) motivate you to again scratch that itch to get back to work. Treating your users as co-developers allows you to think of users not as some third-party but as some first-party whose input and ideas are just as valuable as your own - ideas which again may inspire you to scratch that itch. With the combination of these three (good testers, good relationship with users, and the itch), you can ensure that your project or product will ship early and often. The open source community allows you to have so many people focused on scratching their own itch such that by the power of numbers (and "Natural Code Selection"), the bazaar comes out on top:
"Linux is subversive. Who would have thought even five years ago (1991) that a world-class operating system could coalesce as if by magic out of part-time hacking by several thousand developers scattered all over the planet, connected only by the tenuous strands of the Internet?" - ESR
... Bazaar AND Cathedral?
The cathedral and the bazaar do not have to be mutually exclusive. Both models have their pros and cons. With the cathedral, having a few specialists focused on the core problems of a project is a good thing, but as ESR points out:
"In the cathedral-builder view of programming, bugs and development problems are tricky, insidious, deep phenomena."
The lack of sheer numbers working on fixing these bugs means that some issues may never be resolved or triaged such that they never see the light of day. If, however, the cathedral were to welcome some members of the bazaar or even open up the visibility of their project to the bazaar, then they could enjoy the benefits of control and/or secrecy and/or keeping a small core crew of developers while also receiving the benefits of the bazaar. This is exactly what some companies have started doing. AWS, Google Cloud, Microsoft, etc. all are traditional cathedrals who now have open source projects that members of the bazaar contribute to. In some cases, if an individual contributes a lot of work to a particular project owned by a cathedral, they may even be considered a maintainer/official contributor or be hired by said cathedral! In conclusion, I think ESR made a lot of great points in discussing the pros and cons of the cathedral model and the bazaar model. It was neat hearing how he saw these play out in his personal experiences with the open source community and fetchmail. While I definitely prefer the bazaar model, I think that companies are too stubborn to make projects fully open source, or maybe they are just bound legally speaking from doing so. Because of this, I think the future of software development will be a hybrid combination of the bazaar and cathedral models.
This post is in response to Reading 7 of the Hackers in the Bazaar course offered at the University of Notre Dame.