The Cathedral, the Bazaar, and The Pillars of the Earth

Looking for a book to read, after finishing “After Dark” by Murakami in a bored-for-five-pages entertained-for-the-next-five kind of fashion, I stumbled upon “The Pillars of the Earth” by Ken Follett, thanks to Goodreads’ association to “The Name of the Rose”, a book I’ve been pleased by.

I was surprised with how much I was relating Ken Follett’s book with “The Cathedral and the Bazaar” every time cathedral development was described. It amused me how the parallelism between cathedrals and bazaars fit so well with open vs closed source development was made by Raymond. It was so well established that I wasn’t able to get out of my mind software when reading about cathedrals. Ditching the open vs closed source software development, I’ll describe how that relation stuck with me since reading Raymond’s book.

Unrelated: an anecdote I remembered

Not related to this post, I need to mention an anecdote I remembered when writing the previous paragraph: a friend I’m very fond of (Jaru, if you’re reading this, please know I’ll never forgive this) spoiled me the end of “The Name of the Rose”; he revealed to me the enigma when I was about half of the book. What a f***er – I still love you, though- Thankfully, Eco’s writing allowed me to enjoy the book even knowing the underlying mystery. But I would’ve much appreciate it knowing from the book that all along the one behind the cathedral’s drama was no more no less than-

What my mind surfaces now when reading about cathedrals

Going back to the post itself, I’ve only read a couple of pages of this new (to me) book. But heavily suggested by having read “The Cathedral and the Bazaar” by Eric S. Raymond, I was having a hard time not relating the paragraphs narrating Tom’s story with software development.

When I first read about The Cathedral and the Bazaar I asked myself why those two concepts were used by Raymond to describe open versus closed source software development, and I got it at the time: the bazaar is a dynamic unpredictable environment, while the cathedral is an organized, elitist project, where the lifecycle is determined upfront and separated in well defined phases.

What I’m seeing now that I didn’t saw before was a developer perspective of this parallelism, the implications of the closed source software development as bases of foundation for a cathedral development. I feel this idea (and hence, maybe, this post) is only an insight for now, as I’ve just started the book. I’d like to to a follow up writing of it once I finish it. I’m still aiming to appreciate how accurate Raymond was when using this analogy, how it resonated in my mind so much I was able to associate software when reading about cathedrals development.

A few paragraphs from “The Pillars of the Earth”

But then he realized that the walls of a cathedral had to be not just good, but perfect. This was because the cathedral was for God, and also because the building was so big that the slightest lean in the walls, the merest variation from the absolutely true and level, could weaken the structure fatally. Tom’s resentment turned to fascination. The combination of a hugely ambitious building with merciless attention to the smallest detail opened Tom’s eyes to the wonder of his craft. He learned from the Exeter master about the importance of proportion, the symbolism of various numbers, and the almost magical formulas for working out the correct width of a wall or the angle of a step in a spiral staircase. Such things captivated him. He was surprised to learn that many masons found them incomprehensible.

Good software is good if its minuscule parts are. The bigger the project, the more important it is to avoid small errors, as those add up exponentially in regards to the project size, weakening the structure fatally. Test driven development defends this paragraph. The magical formulas may be design patterns, and the disjunction between those who care about that and those who don’t is heavily reflected in the software development ecosystem, the “non-typed languages, +100k dependencies, no-unit-testing, throw in this and that and have it working” kind of mentality, as opposed to “strictly typed, pre-commit hooks that run test coverage and linting, compiled languages”, r/rustjerk kind of thing.

After a while Tom had become the master builder’s right-hand man, and that was when he began to see the master’s shortcomings. The man was a great craftsman and an incompetent organizer.

True for many self centered technical folks that underestimate the importance of business dynamics in regards to the software piece, as if the latter is more important and the only place where budget and time are well spent.

He was completely baffled by the problems of obtaining the right quantity of stone to keep pace with the masons, making sure that the blacksmith made enough of the right tools, burning lime and carting sand for the mortar makers, felling trees for the carpenters, and getting enough money from the cathedral chapter to pay for everything. If Tom had stayed at Exeter until the master builder died, he might have become master himself; but the chapter ran out of money—partly because of the master’s mismanagement—and the craftsmen had to move on, looking for work elsewhere.

Blacksmith making tools as tech architecture. Mortar makers and carpenters as programmers, money as money, and the lead of a project leaving at an unexpected time. Bad planning and resource allocation, technical debt, and founding: killers of every software project.

His wife, Agnes, had never understood that decision. She could not comprehend the irresistible attraction of building a cathedral: the absorbing complexity of organization, the intellectual challenge of the calculations, the sheer size of the walls, and the breathtaking beauty and grandeur of the finished building. Once he had tasted that wine, Tom was never satisfied with anything less.

Attention to detail, modular complexity, intellectual challenge and the beauty and grandeur of an immense project: not every developer’s dream, but utopia for those who care.

Closing words

I hope I don’t get too distracted by software while reading “The Pillars of the Earth”, but I’d like to see how this parallelism goes on in my mind during this novel. I might write a follow up post if I get too dazed at comparing architectural related paragraphs with software.

Leave a Reply

Your email address will not be published. Required fields are marked *