Sometimes you’re playing a game and wondering how similar it is to real life. Most of those times you’re comparing it to whatever the game is based on, but there are things that can be derived for other areas.
In this article, I’ve picked 6 games and grabbed 6 things that they have in common with software development. They go from team management to communication, along with planning and risk management. Hope it’s a fun comparison! 🙂
A team needs time and stability (Football Manager 2019)
How do you build a team that works as a team? Football Manager players will promptly answer that: give it time and stability. You need to give your team time to learn the tactics, you need to carefully introduce the new players and you need to keep things stable, as constantly changing your tactic will prevent the team from learning it.
Jumping to real life, you can’t get a group of people together and hope that, magically, they’ll start working as a team. You need to give them time to develop bonds and routines. You can’t also keep changing things around and expect they won’t be affected by it. You need to give them stability. Don’t expect that a group of people will suddenly work together at peak performance. Great teams take years to build.
Plan for the short, medium and long term (Civilization V)
I’ve picked Civilization V because I’m (still) playing that one, but I’m pretty sure this applies to all Civilization games: you need to plan, plan and plan. You need a plan for the short term needs, you need a plan for the medium term expansion and you need a plan for your long term strategy.
This maps perfectly to Agile software development. Your short term plan is for the sprint. Your medium term plan can be for a release or for a PI (if you’re in SAFe). The long term is along the lines of your vision: it’s where you’re headed. You need to handle the short term needs, plan for the medium term and see that you have a clearly defined vision aligned with what you’re doing.
Accurate and clear communication is critical (Counter-Strike)
Counter-strike is a highly tactical game where clear communication can be the difference between winning and losing. I’ve been in matches where someone simply saying a location of the map on the chat or over the mic was enough to completely turn everything around. When the information provided was accurate, just that simple tidbit was enough to shift the team’s efforts to where they were needed. When it turned out to be a distraction, it provided the enemy with an open road to the objective.
Accurate and clear communication also plays a pivotal role in software development. Clearly communicating requirements, obstacles, progress, changes and risks, for example, can make the difference between success and failure.
It’s important for team members to be able to communicate with each other, as well as with other stakeholders. If some of this communication can be automated (and that is often the case with progress reporting), that’s even better. However, no matter how much automation you have in place, always ensure there are clear communication paths available and that people are listening and reacting to them.
Teamwork matters (Overwatch)
Overwatch is one of those games where it’s easy to understand the importance of teamwork. Players acting on their own, with no regard to what the team is doing, often make the opponent’s work tremendously easier. If one of the teams is able to take the objective in seconds, it’s most likely because the other one didn’t work together.
Working together is also paramount to success in software development, and it’s getting more important each day. In true Agile development, the role of the lone wolf who takes care of everything is gone. Teams should be able to self-organize and to divide their tasks among each other, working together to reach their goal.
Disasters will happen (X-Com 2)
X-Com games are capable of turning the most optimistic player into a pessimist who always expects the worst to happen. It doesn’t matter how well things are going, it doesn’t matter that the mission has been going perfectly so far, it doesn’t matter that the shot you’re about to take has a 99% probability of hitting the target… you still fear it’ll miss. Because, sometimes, it will.
When playing the game, you’ll try to anticipate everything that can go wrong. There are risks you’ll be able to avoid, others you’ll be able to mitigate, and some you just have to accept they might occur. It’s like a crash course on risk management.
In software development, unexpected negative events are always just around the corner. Emergency maintenance windows can wreak havoc on your planning, people can call in sick, a critical bug may be found near the release date… a lot can, and will, happen. Prepare for what you can anticipate and be quick to react to surprises.
React to change (Starcraft 2)
Experienced Starcraft 2 players know the importance of scouting. You need to know what the enemy is doing, so you can react to it. Sticking to a pre-defined strategy, ignoring what is happening in the game, is a sure way to lose.
Conditions are always changing in software development. New competitors arise in the market, new technologies appear, new elements join your team, new methodologies and tools show up, new customer requirements arrive… everything is always changing. You need to react to this change and adjust your strategy accordingly. Don’t stick to something that has always worked while ignoring what is going on around you. Keep yourself updated and prepared to react to change.