Olly Headey

August 22, 2022

Convention over configuration to avoid contraptions

In the world of software development, taking the convention over configuration approach has many advantages. It’s no coincidence that Ruby on Rails defined this approach and the Rails framework is still unsurpassed in terms of developer productivity. If you get too trigger happy with software configuration, those indulgent experiments in esoteric architectural patterns can see your well-oiled machine transform into a mind-boggling Heath Robinson contraption of incoherent indirection. Still functioning, but understood by no-one and impossible to adapt. Gasping, but somehow still alive. Any experienced programmer should know what I’m talking about. 

The business world could learn a thing or two from this. For the most part, companies hire people with experience to bring in new ideas and practices to help the business adapt, grow and be more successful. To some extent this works: hiring a new operations manager will fix your questionable (or non-existent) startup HR practices, while hiring a talent specialist will bring rigour and efficiency to your hiring process. A selective and intentional application of talent and experience can do wonders, but the more you do it, the higher you raise the configuration stakes. Without careful consideration and deliberation, allowing decisions to be made without a full understanding and appreciation of existing conventions, the more you are configuring and veering into contraption territory. Contraptions create confusion and chaos. They will chew up your culture, introduce unnecessary dependencies and complexity, and result in multiple single points of failure that are hard to overcome.

When new people join a company, however well intentioned, their default mode is configuration. If left unscrutinised, these new ideas will introduce entropy to your company's operating system. Existing conventions will be infringed, which leaves them being conventions no more. It happens slowly because each change is usually small and, on the surface, of no great consequence, which makes this disregard of conventions even more dangerous. There's no obvious tipping point, it's simply a case of death by a thousand cuts.

While you should prefer convention over configuration in your business, conventions should be challenged because sometimes the right outcome is an adaptation. Managing this challenge is the key. You need to take a careful and considered approach to managing change, to scrutinise the reasons for and against the configuration. More often than not you’ll find that the convention is entrenched for sound reasons and it should be upheld. At least for now.

This is hard work and it's a fine balance. You have to be open to fresh ideas but remain a fervent defender of your constitution. Amendments can be made, but only after a thorough debate with clear reasons for why the change is required, what benefit it will bring, and – crucially – what the consequences are. You’ll have to live with any change you introduce and it will be inherently difficult to back out of it. Celebrate your conventions, but don’t die on a hill to defend them. You shouldn't be a corporate diehard, slavishly upholding the company handbook come what may, but at the same time don’t go believing everything is broken just because it doesn't look like what someone new is used to.

I’ve seen far more success when existing practices are understood, followed for a while, and then tweaked intentionally. When someone joins a company and decides on new approaches because that’s what worked for them in the past, not only do they offend and upset the old guard, they're also spilling ink on the constitution, leaving it prone to being scrunched up and discarded. They need to be encouraged to continue suggesting ideas, but they shouldn't expect to be able to steamroller them through before they've learned the ropes and grokked the full context for why things are the way they are.

Ultimately, the better you can articulate your company's culture in the first place – how you think, why you do the things you do – then the more success you’ll have in maintaining it. The culture inherently exists, you just need to write your constitution, while at the same time accepting its imperfections and embracing the constant of change.

pablo-garcia-saldana-lPQIndZz8Mo-unsplash.jpg
Photo by Pablo García Saldaña on Unsplash