Week 8 - The Cathedral and The Bazaar

How exactly does the software you use daily get created? There are two contrasting philosophies at play, often referred to as “the cathedral” versus “the bazaar.”

The Cathedral Model

For decades, software was built using the cathedral model - small, isolated teams of developers meticulously crafting code through rigid, pre-defined processes. It was a closed-off, hierarchical system akin to how medieval cathedral builders painstakingly constructed those grand edifices over generations.

The Bazaar Revolution

Then the open source movement ushered in a radical new approach - the bazaar. Instead of a few elite coders working in silos, open source unleashed a distributed, decentralized model where code gets developed publicly through the internet by a self-organizing community of programmers from all over the world. Think of a bustling bazaar where vendors yell, barter, and collaborate amidst joyful chaos.

The bazaar ethos, as articulated by Eric Raymond in his famous essay, boils down to:

  • Release Early, Release Often - Don’t wait for perfect code, but continuously push working iterations to the public. This enables massively parallel development and rapid iteration.

  • More Eyeballs = Fewer Bugs - With open source, more users scrutinize the code, so issues get rapidly identified and fixed.

The success stories of major open source projects like Linux, Apache, and Firefox serve as compelling evidence for the effectiveness of Raymond’s “bazaar” approach. By leveraging the collective intelligence and scrutiny of a diverse community, open source development can produce robust, innovative software that evolves rapidly.

While the cathedral model still has its place for certain types of software, the bazaar model has disrupted traditional development practices and ushered in a new era of transparency, collaboration, and meritocracy in software engineering.

What do you think about the cathedral vs bazaar paradigms?

Written before or on March 17, 2024