A cathedral is predesigned and every brick is placed with a purpose, it has no use until it is totally complete. A bazaar is a sum of its parts. A bazaar is like the question how much is a handful of sand. If you take away every contributor but one at what point is it no longer a handful, or the other way at what point does it become a handful. In the case of code, the cathedral is generally proprietary code, something that a team will work on, usually for a company and eventually it will be released. A bazaar is a group of people working together, generally in open source, all to varying degrees and all to create some end product that none of them probably have a full grasp of. An open source project like a bazaar starts with one contributor, or one merchant, but more and more people will come to buy or to set up stands and add parts to the bazaar. Eventually there are many many people working on and with the product. I feel like both the cathedral and the bazaar have the positive points. Take for instance an open source program that handles credit card purchases. It would be very easy for one of the contributors to add code that copies all credit card information as the card is being processed. Similarly open source projects are great for applications like Firefox. Because of its open source nature it is able to be both better and more customizable for the user. So much is able to be added, tested and improved upon because so many different people are able to work on the project. I don’t really think there is an answer for which type of programming is better the cathedral or the bazaar. I feel like a mix of both is needed. Take the security industry for example. While a certain amount of secrecy is required to ensure that the customers are not at risk, common practice is to release the projects to the community as early and as often as possible so that more hands can be on the project, trying to break the security and see where any faults may lie. This requires a combination between a cathedral and a bazaar.
In my experience I have dealt with more cathedral style programming, however, I really like the idea of bazaar style programing. I love the application Maya. However, it costs $1500 for a non educational license. The idea of blender, a product that would do many of the same things as Maya, but that I could also work on to improve it is great. Not only is it free, it has a great community behind it working to always make it better. I feel like we will see a move to this blended style of development. Where companies will take advantage of the bazaar that exists to make their cathedral better. I think Microsoft is a prime example of this, put your programs that you charge people for into open source so that other people can fix the bugs for you and you can have a better product for minimal cost and improved community standing. This also allows new eyes to constantly be looking at it as people get bored with the project. Because like in a bazaar the customer is the most important, if they get a better product for cheaper they will keep visiting the cathedral even if its built on a bazaar.