Hackers in the Cathedral

When considering my own experience with software development, I have experienced the most success with the bazaar method of information sharing. There is free and open documentation for my many, many problems, and I don’t feel like a burden to my supervisors or instructors by being able to look it up whenever. Additionally, whenever I encounter a problem, I can bet that at least one person brave enough to ask a question on Stack Overflow or the Github community forums has also experienced this issue. A good deal of my problems is very easy to solve, allowing my software development to be more independent without being independent. It’s physical independence, which has it’s issues, but it also gives me a sense of comfort, as I’m sure it does with other people.

Another aspect of the bazaar is continuous updates, whether that is in product features or security patches, there are constant eyes on the software making sure that it meets standards, creating a rather dynamic piece of software. As Raymond argues, this is important to the development process. The number of eyes on the software are able to tame the complexity by allowing testers and developers to freely communicate and update the software and they work hand in hand. It almost seems obvious that bazaar development method is far superior. Or is it?

While it is very easy for a programmer to parrot the greatness of the open source community, a community that has rightfully earned its place in the technology community as a whole, it is still possible to confidently say that it does not solve every problem. The cathedral method has it’s definite benefits. While I prefer my own software development method to more follow the bazaar method, my experience as a user almost always is improved with the cathedral method.

Products like Microsoft Office are far superior to its open source contemporaries, of course. However, out of my software experience, I don’t spend that much time in Microsoft Word. I spend a lot of time on the internet. I like to play games from time to time. I enjoy producing music in digital audio workshops. All of these are examples of products that are created in a cathedral setting and me, as a user, LOVE these products. Granted, I have to pay for them, whether that is money or my personal information, but I pour hours into these products and it just brings a blast.

But why? I believe a big part of that is a consistent voice. Sure, the community behind Linux Mint are creating this dynamic operating system that I like to use, but I don’t want a dynamic gaming experience all of the time. Sometimes, I want to throw Smash Bros Ultimate and know EXACTLY the game I am playing. Granted, in this day and age, there are periodic updates, but the core gameplay is the same. And, having a user base that effectively stress tests the software every day, finding all the holes they can possibly exploit, is the same as having a plethora of eyes on the software, except the progress of updates is unbeknownst to the user base, which is fine. I don’t always need to know what’s about to happen. Sometimes I just like to play some music on Ableton without being up to date on the upcoming features.

So, in essence, I prefer the bazaar method of software development when I am the one programming, but I much prefer the products that arise from the cathedral method. As for the method of the future, I think the future can maintain both methods, much like it does today. Both methods can grow and evolve at their own rate. Sometimes that will be independent of each other, but there will likely be crossover between the two, much like the eyeballs keeping the software in check applying to both the open source community and stress testing users. Maybe someday, a third method will emerge that will also hold elements of both prevalent methods, but I don’t think one will dominate over another.