Dr Strange teaches us a fundamental lesson about Software Development
Over the past week, I’ve ended up watching the most recent superhero movie, Spider-Man: No Way Home. This article is spoiler-free.
Never quite understood this genre myself, but then, about midway through the movie, it hit me. Take away the magic spells and elaborate (anti-)heroes, this movie is very much a lesson of everyday IT life.
In my role, leading engineering departments big and small from companies around the world put me in the front seat of both positive and negative consequences by my team members.
As we’ve covered in past articles, The Single Most Important Asset of any Startup | Software Architecture Series, Part V , building and nurturing a team is the best step any early-stage business can take to ensure long-term success.
Building a team quickly is possible. Building a good team quickly however is possible only in the realm of superhero movies, unfortunately. You have to learn both the positive and negative traits of every team member to make it work. Ego management is one of the most deceptive one to master when leading a team.
Engineers are a little bit like the magicians of these movies, people that seemingly out of nowhere pull up funny shaped symbols and suddenly make the improbable very much an everyday occurrence.
In the movie, Dr Strange does his magic thing and happens to royally mess it up. In an attempt to control the situation, he ultimately ends up creating a larger mess than was even possible. Of course, as any self-respecting adult does, he then entrusts an immature teenage Peter Parker to clean up the mess.
Take the magic out and unfortunately, you are left with a shockingly common yet destructive quality we, as engineers, seem to carry with us — unmatched ego.
Dr Strange made a mistake — as anybody does. In life, doesn’t matter if you are a Sorcerer Supreme, a TypeScript Ninja or a junior dev, we all make mistakes. I’d go as far as to say we should embrace our imperfect nature as that is what makes us human enough to still control the machines.
The real mistake here done by Dr Strange is a different one. Unfortunately, one that I’ve seen more times than I care to admit. When faced with the realisation you’ve messed up, our instincts go in self-preservation mode. Our ego, when unchecked, risks taking over the driving seat on the one-way road south.
You can see that as the movie progresses, Dr Strange keeps trying to find more complex and elaborate ways to fix his problem. But even once he realises the true scale of the situation, still refuses to reach out to anybody knowledgeable enough to help.
He doesn’t reach out to a fellow capable wizard, Wong, or anybody else for that matter because of an inflated sense of importance. Sound familiar? Well, it should be because this is a scaringly common occurrence in engineering environments.
We like to joke the moment a junior engineer turns into a senior one is when she or he runs
sudo rm -rf /on a production server at 2 AM. That might be the point they turn technically senior, but that’s only part of the journey.
In reality, I’ve encountered veteran engineers, people that can write the code faster than you can finish the specs, which unfortunately haven’t mastered this art. The subtle art of admitting fault. The art of asking for help.
Beyond all the technical jargon and magical symbols (looking at you, Go!), we are all in this together. We make brilliant things happen as a team — let’s learn to fix big problems, as a team.
While this movie would have been a rather boring one should Dr Strange left his ego behind the door when he realised his mistake, let us take that as an example of what happens when we go at it alone.
No mistake is big enough as long as we are humble enough to admit ownership.