There is something I’ve noticed about some software gurus: they often have trouble staying in their lane. Despite the fact that they don’t apply any form of scientific rigor or empiricism before advising every developer on the planet to “do it this way,” they become convinced of their own expertise and before you know it, they’re not only telling you to stand up in meetings and embrace change but also what you should eat and how you should live your life according to their principles of software engineering. It’s mildly amusing, until those opinions start to actually endanger you. “Don’t wear a seat belt. You’ve never crashed before, have you?” Recent social media activity around the coronavirus pandemic springs to mind.
Some fascinating developments have already emerged during the COVID-19 crisis. All the aspects of complexity that make the field so interesting are there. Multiple parameters that we cannot use to predict the future with any degree of certainty, a massive signal-to-noise ratio that means we cannot trust anything, and a sudden swirl of mini-experts repeatedly telling us that we’re too dumb to understand exponential growth (high school math!).
As a research student in complexity science, it is a fascinating and horrifying thing to behold. First, in the midst of all this complexity is the absolute certainty of some actors about the course of action we must take. The ferocious debates that pose as scientific argument but make transparent the motives of the pusher. The factory owner with thin margins who obviously thinks the entire thing is a hoax and has plotted some little charts to justify doing nothing. The anxious relatives and older populations or those with comorbidities who see no other option than complete shutdown because statistics don’t matter when you’re the one in the firing line. All the way to those who see some kind of high-level conspiracy behind the whole thing.
A pandemic is not one of those incidents we call a black swan. It has always been just a matter of time. It’s not particularly prescient or smart to have pointed out that this would happen. The black swans that exist lie hidden in our assumptions that drive our interventions. It is not ignorance or a lack of data that makes us susceptible, it’s the very act of certainty that is dangerous. As individuals, the choices we now make are influenced by many factors — proximity to the elderly and the sick, our own fear of this disease, and our need to be able to feed our children. Whatever choices we make, we will suffer. Business as usual may expose many more to an untimely death. Compete isolation may have ramifications that we can’t even begin to predict — but a huge recession at a time of increasing right-wing populism does have some historical precedents that should urge extreme caution. Every piece of news that presents this disease as simply a bad flu or alternatively a new plague are tinged with a certainty or a bias that could potentially have disastrous consequences. Actions taken by governments come with no guarantee of success or compliance.
Handling these risks is easy. Despite the patronizing articles and tweets about exponential growth, most people understand what they are exposed to. Your circumstances dictate how you manage this. For those already comfortable, isolation is an obvious and reasonable strategy. For those living paycheck to paycheck — businesses and people — the desire to find some intellectual way of justifying a choice they’d rather not make leads to warped arguments that aren’t worth the energy of engaging in, but are completely human and understandable.
It is here we must realize that our role as software architects is, first and foremost, to stay in our lane; we are not epidemiologists and should not share our opinions about the right course of action for anyone other than ourselves. The resulting, emergent, unpredictable result of these millions of decisions will shape our future for a long time to come.
The great thing about this is that efficient methods are emerging. In South Korea and some parts of Italy, we hear early reports of how effective mass testing, targeted isolation, and contact tracing have been. If these reports stand the test of time it will be a huge triumph for humanity over uncertainty. The horrifying thing is how exposed we are. Our supply chains, our financial management, our social structures, are all exposed as weaklings in the face of a threat that was always going to happen and could have been much worse.
I teach architects to prepare their architectures for the lizards — giant, fire-breathing lizards that will destroy their town. If their system can survive things like this, then they can learn to work with the highly improbable to diagnose sensitivity to incidents they can never understand or predict, and avoid falling into the trap of believing that the future will look like their past, and indulging in lazy, bias-fueled, probability-based risk management. This approach is the only way to work with uncertainty: working on sensitivity and mitigation rather than probability and certainty of survival. The coronavirus pandemic is such a lizard; the second-order effects of the actions we take will send ripples and shockwaves across the interfaces of global business and into the software interfaces that support it.
When this happens, it will inevitably impact the software infrastructures that our shaky globalization has been built on — and these architectures are as shaky as their business foundations. Just-in-time, simplistic, linear thinking and the focus on reuse and consolidation will reveal the weaknesses in what our industry has built at the behest of various gurus over the last 50 years.
We will have a chance to restart. Many businesses will start to rebuild and the idea of the lizards will be fresh in their memory. We cannot let them down again by building the same old shaky architectures that we have been building based on unscientific ramblings of software gurus and passing fads. As business leaders begin to rethink — in the light of recent revelations about the impact of improbable events and the contagion involved — we have a chance to step up to this as partners in the joint exploration of the unknown, free of the need to be all-knowing experts bringing certainty in a SaaS package. If we don’t, there’s a good chance that we’ll be the lizards.