[SPOILER ALERT!]

Andrew Grathwohl
6 min readAug 24, 2015

WATERFALL STILL EXISTS IN THE FUTURE

If You Don’t Go Agile, You May Get Stabbed Through the Chest

Nathan Bateman did a lot of things right. His swanky auto-house was located in the middle of nowhere and had a host of well-implemented security features. The contest he arranged as a smokescreen for acquiring Caleb was a success. And his company ruthlessly hacked the cell phones of every person on Earth in order to develop a near-flawless AI for its android prototypes.

Regardless, Nathan’s management skills most certainly could have used improvement. Perhaps due to his ego-maniacal ways, Nathan did not realize that he should have organized his dev team in an agile fashion. Instead, he ran his two-person (perhaps three-person) crew under an iron fist of chaos. We all know how that ended up working out for the film’s two male protagonists.

A scrum master probably would have been able to save both Nathan and Caleb from brutal death.

Nathan gets stabbed in the heart by his two robot companions, and ends up bleeding to death on the floor. He thought it was “fucking unreal, man.”
Caleb presumably dies too. It looks like systemd is still widely used in the future.

Don’t be like Nathan…

Frequently, geniuses make terrible leaders. Nathan had a debilitating personality problem — and no, I am not referring to his unending desire to pump up the party.

This scene’s masterful use of foreshadowing serves as a warning to all dev teams wading in waterfall.

Nathan was reluctant to share his ideas with others. His aims were not clear. These are tell-tale signs of inadequate product management.

He also took far too much of the product development initiative upon himself. Good managers know how to delegate tasks and how to properly divide ownership. Unfortunately, Nathan was a bit too focused on how cool his project was, and he lost sight of the bigger picture.

What should be clear is that Nathan had no business managing a team of such a peculiar construction. He placed his lone employee in a high-tech mouse trap paired only with a sharply-intelligent robotic beauty — without first considering an optimal workflow for the week.

… be Agile.

Had the genius of Nathan Bateman been steered towards a more agile workflow, it is likely that he and his employee’s futures would be brighter. Here’s what Nathan should have done differently.

1. Start the week with a sprint planning session.

Come on, Nathan! Your employee arrives on a Monday and leaves on Friday. Your employee is going to perform the Turing Test on an android prototype. That’s a god-damned sprint if I’ve ever seen one! What better way to ensure success than to arrange a sprint planning session?

Such forward thinking could have easily avoided the pair the constant changing of context, project requirements, and overall goals for the week. He could have even assigned some leftover velocity for drunken Jackson Pollock rants, if he felt it was that important. Or maybe he could have just represented his desire for emotive responses to questions in his acceptance criteria.

2. Draft proper acceptance criteria.

Throughout the film, Nathan’s aims are fuzzy at best. He wants to perform the Turing Test on an android he’s constructed, but things are immediately off from day one. Nathan did not go over the details of the first session with Ava — nor state the goals for the proceedings. As a result, Caleb notices several aspects to the tests that are in contrast with the Turing Test’s rules.

See Wikipedia’s relevant materials on the Turing Test workflow:

The evaluator would be aware that one of the two partners in conversation is a machine, and all participants would be separated from one another. The conversation would be limited to a text-only channel such as a computer keyboard and screen so that the result would not be dependent on the machine’s ability to render words as speech.

Clearly, these stipulations were not addressed in any fashion prior to Session #1. Not only is the artificially-intelligent android in plain view for the tester to see during the project’s initiation, but the pair converse with their spoken voices. That’s not a text-only channel.

Furthermore, there was no third participant in sight! Perhaps Caleb assumed that Nathan would be the third participant, but assumptions are not very agile either. Both of these tech bros need to ask more questions — that would be very, very agile.

3. Groom your product backlog constantly.

Look at this shit show of a post-it board.

Nathan probably could have gone with kanban.

No project — of any undertaking or complexity — needs to be so haphazardly managed. I dig that Nathan didn’t want to put his work somewhere online that could be susceptible to security breach — I wouldn’t put my top secret android plans on Trello either. However, this sloppy organization method amounts to no more than product management hell. Perhaps that’s why Ava’s apparent bug in the beginning of the film is never addressed.

4. Make time to address your code’s bugs.

At the first session, Ava asks a rather ordinary question, but answers it in a most peculiar way:

Ava: Would you like to know how old I am?
Caleb: Sure.
Ava: I’m one.
Caleb: One what?
Caleb: One year or one day?
Ava: One.

This may seem to be an ordinary bug in most viewers’ minds. She wasn’t specific about her age — so what? Ava is not a human, so time is not particularly applicable to her. Caleb never brings this bug to Nathan’s attention, so it’s probably OK — right?

Wrong! Bugs are important to discuss in an agile workflow, as they often lead to greater discoveries about your code. Because scrum and agile begin with the premise that we cannot possibly know everything that a product requires to be complete, bugs are sometimes a pivotal moment of discovery for a team. In the case of Nathan and Caleb, the lackluster attention paid towards Ava’s bug may have been the cause of their ultimate downfall.

From the moment she’s first turned on, Ava is one — as in binary 1. She only knows that she is on — rather than off. How come Caleb doesn’t ever suggest that Ava store her own birthday? (While we’re at it, maybe we can make sure Ava’s age is not stored as a boolean, but as a string containing an ISO 8601 compliant date?)

Ava is alive, but she does not understand the need to track one’s time spent alive. Could she really pass as human in such a state of mind? Better yet, why did Nathan never consider the danger of constructing an android whose only knowledge of time’s passing was connected to its ability to understand whether it is turned on or turned off?

Bugs can kill software, but in the case of Ex Machina, bugs may have killed the programmers. Because Caleb and Nathan did not address the issue of Ava’s age, Ava’s thoughts immediately grew graver and graver at the very thought of being shut off. This realization, combined with Ava’s super-human chassis, led to her unstoppable desire to escape. Ava did not want to be turned off. So she stabbed Nathan to death and tricked Caleb into locking himself away in the terrifyingly-red home of his psychopathic boss.

Thanks for taking the time to reflect upon one of the most compelling films of 2015 with me. My hope is that readers will apply these lessons to their own team or initiatives. So, the next time you’re trying to launch an ambitious software project like Nathan Bateman, remember these thoughts on agility and you’ll probably make it out alive.

--

--