Test environments are from Mars; production environments are from Venus

Photo credit: Nicolas Lobos via Unsplash

If a crewed mission makes it to Mars, it will have lots of problems to overcome. The atmosphere is thin, and mostly made of carbon dioxide. The average temperature is -60 degrees Celsius. And there is no magnetic field to shield inhabitants from cosmic radiation. It’s not surprising that, so far, the planet is occupied by robots rather than people.

What about our other planetary neighbour, Venus? It’s slightly easier to get to, has more atmosphere, and is quite a bit warmer. Unfortunately, it’s warmer by about 700 degrees, with an average temperature of 640 degrees Celsius. And that atmosphere is a bit too thick, imposing a crushing pressure 90 times that of Earth. It’s mostly carbon dioxide too, but punctuated by clouds of sulphuric acid gas. And it doesn’t have a magnetic field – or a robot population. The only probes which have entered the Venusian atmosphere have been swiftly crushed and cooked.

When we release code, it sometimes feels as if we are sending it to a distant planet. We nurture it, we run unit tests, and sometimes we wrap it in a container. And then we push it out of the repository and into the wild, where it is subject to threats and challenges it has never experienced before.

The type of planet we send our code to varies depending on its purpose. Many test environments are like Mars. They are sparse and arid, only populated with the minimum sets of data required to give some signal of viability. They may include some penetration tests, like cosmic rays piercing the thin atmosphere.  They may have some other systems, like robots trundling around the desert landscape. But they are often empty, cold and small.

By contrast, production environments are rather more like Venus, torrents of raging chaos, where everything is subject to constant change, and failure is certain. Environments which are hot and noisy and where attacks are aggressive and unceasing. Where an unprepared and unprotected codebase will crumple and wilt within seconds.

However, just like many aspects of technology, this interplanetary drama, this launch of code from Earth to Mars to Venus, is often invisible to people outside the technology team. They see images of gleaming data centres, of spotless racks and neatly organised cables, of lines of code which march up the screen, and they imagine that everything must be friendly and benign. (Note that many of these images are more likely to come from clip art than from actual visits to data centres.)

It seems reasonable, therefore, when they see systems fail, or see them compromised or breached, they are surprised, and wonder why their technology team let them down. It even seems reasonable (if a little contradictory) that they are puzzled by demands for additional capacity, and failover, and defences. Surely we cannot be running our code in environments which demand such protection and preparation.

I think that it is part of our duty as technology storytellers to bring to life what happens to code when it passes into production. The planetary metaphor may not be perfect, but we need to find some way to help people appreciate how a system can suddenly come under pressure from unexpected transaction volumes, how it needs to survive infrastructure which is guaranteed to fail, how it has to cope with unexpected and alien behaviour far beyond what its designers or testers imagined – and, of course, how it comes under immediate probe and attack.

We also need to explain how, just like the nature of a planet, these characteristics of technology environments are not intentional. They are like the weather: if you put a system on the Internet, it will get attacked, just like the Sun rises and the rain falls. If you build a piece of machinery and put it to work, it will eventually fail, just like the acid clouds swirl through the air of Venus. And if you put systems in the hands of humans, they will surprise you, just as the robots of Mars have surprised us with their resilience and longevity.

Technology gets ever more complex, and ever harder to explain. Anything which we can do to help people understand it – and to help them make good choices – is a boon. Sometimes metaphor is necessary; sometimes it works.

Previous
Previous

What does 'architectural significance' mean in the age of AI?

Next
Next

The happiness of the unhappy paths