Last Tuesday evening was an ordinary night like any other. Husband cycling in the kitchen, child on the iPad, me reclining on the couch switching on the TV to watch some sort of trashy TV program.

“Alexa Xbox on”

Then trouble…. The TV screen was a black screen of doom. Why wasn’t the Xbox working and what was I to do? Had the Xbox crashed or worse broken? As the least technical member of the house hold this was a major issue which involved me stomping around the house until the husband was no longer able to cycle and had to come and help sort this (first world) catastrophe out.

We subsequently found out that there was an Xbox live start up issue which meant that thankfully normal service was soon resumed.

Of course, our Xbox issue was nothing more than a minor inconvenience. It got me thinking though.

We live in an age where we are becoming more and more reliant on technology. Everything from the energy we receive via national grid to ordering a prescription uses technology. We can switch a light on via voice activation and order our groceries using smart phones. Until we can’t.

How do we, as software developers, ensure that the software we create is reliable, resilient and secure? What testing plans do we have? And how frequently after launch do we retest? The website we’ve just created looks great but will it work with the next version of Edge or Chrome? What do we do when the application we created breaks. What disaster recovery systems do we have? What strategies do we need in place?