Even TV Shows Know Software QA Matters
HBO has already ordered a second season of Westworld, the space Western Jonathan Nolan and Lisa Joy premiered for HBO last fall. We’ll have to wait until 2018 to see new episodes, though. Luckily, Westworld gave us a lot to think about in the meanwhile — especially when it comes to good software development practices.
In case you haven’t seen Westworld, let’s go over the premise. Westworld is an amusement park, set in a future where androids are commonplace and essentially indestructible. In Westworld, humans can do anything they want to androids, so the humans have the best possible time. Androids follow assigned roles and have their memories wiped between visits from human guests.
This Could Have been Prevented
In this article, we’ll focus on situations seen in the first episode, so you won’t have to deal with spoilers. In the first episode, friendly androids start behaving in ways their programming should prevent. In turn, better quality assurance strategies would likely have prevented these potential problems.
We learn that the park’s founder, Dr. Ford, has slipped some code into the latest update to create a new class of android gestures. This bit of stealth programming has immediate consequences on the androids.
Androids malfunction in front of the guests, requiring an immediate patch. All the androids that have received the new update have to be brought in for repair. The buggy androids are either removed from service or have their programming rolled back to a previous version.
Be Proactive, Not Reactive
Yes, Westworld has a quality assurance team, headed up by Theresa Cullen. But Cullen doesn’t seem committed to preventing problems so much as reacting to the problems that pop up over the course of Season 1. Cullen’s approach is bad for business. She’s not proactive about software quality. But…
software testing is a risk management strategy, preventing problems long before you need to react to them.
Entertainment software today relies on quality assurance. You can see echoes of the questions we see across Westworld if you look. Gaming companies have to focus on keeping massive systems up and operational. Blizzard Entertainment, for instance, has over 10 million subscribers playing World of Warcraft. We’re not even going to look at their other games.
Even a day’s downtime in World of Warcraft could cost millions of dollars. Blizzard built a substantial QA process to limit problems long before launch day. We see hints that the Delos corporation (the company running the Westworld amusement park) is dealing in at least as much money, since the cost of a day at Westworld is $40,000 per day per guest. Even if there’s only 25 guests at the park on a given day, we’re talking about a million dollars a day that could disappear during downtime. Westworld also probably has higher costs than Blizzard due to potential liabilities like a guest dying.
Put preventative systems in place
There are solutions to these problems. Even your company’s founder shouldn’t be able to slip code into your code base with no one else at the company the wiser. Testing helps catch a lot more than just bugs: it helps catch changes to your code.
You can start with the overall security of your software, but then you should do more. You can add an additional layer of security through automated testing and logging: Adding those two pieces to your company’s workflow means that you’ll know when someone else has updated the code, if only because all your tests break when the new code goes live! A code review process adds another layer. You can be pretty sure that you’ll catch the majority of cases where someone adds unexpected functionality to your code if all code goes through review.
Westworld is fiction; there has to be a problem that makes a story interesting. But we don’t want fiction to become reality — stories like Westworld are a low-risk way to explore what the future might hold. They let us spot potential problems before they occur. So take note of what you love about Westworld and what inspires you to improve your software testing process, if only to keep murderous androids to a minimum in the real world.