I write this on the land of the Turribul people, at a place called Meanjin in the Yuggera language. This is a blog about software architecture. I’ve been building large-scale software for many years, in several countries and for several companies. This contains some things I have learned and invented along the way.
The companies that have paid my wages over the years tend to want to keep their stuff secret. Sadly, this is an industry trend, which means that there is not a lot of real material from which we can learn how to build large systems. There are a few published mega successes, but very few big and little failures. I suspect that The_Mythical_Man-Month would never have been published if OS-360 had been a failure. As an honourable person, I’m not going to break that trust in this blog, so none of the examples directly relate to any specific system on which I have worked.
But why “Should Just Work”?
Building large-scale software is enormously complex, with so many factors to consider to make all the parts work together. A dev team lead often asks for a ‘diagram of how it all works‘. I tell them, “My job is to let you do your job without you knowing how it all works“. If they are working on the Customer Records, then that should just work with the Billing and Inventory parts, and it should just work with the CD/CI process, and the mobile app should just work too. Similarly, if a product manager wants to add SMS notifications when a customer contract renewal is due, then that should just work with the existing customer records.
It’s our job as software architects to make that magic happen. And like the duck gliding serenely over the pond, we don’t want all the spectators to see the furious paddling we need to do to make it happen.
Should – This word indicates a degree of hopeful doubt. It means ‘I have not tested for the new ask or designed explicitly for it, but that ask was within the framework I envisaged for the system‘.
Just – This word means ‘I did a lot of thinking about this in the past and made a lot of decisions, and because of that, what you ask for is not nearly as complex as you might have thought’.
Work – It’s why they pay us.
When an architect says those three magic words, it shows we have conquered the dragon of complexity, we are building something more significant than the sum of its parts, we have wisely committed our chunk of the world’s precious resources, and have done what few are capable of… It’s an intoxicating mix of technology, business acumen and people skills.
And that is our job.
Published in Australia by Tessellaris Pty Ltd, ABN 093.250.483