Parallels between playing Diablo 4 co-op and working with others

Context

I've spent most of my life playing and enjoying video games. So it is only fitting I start writing this blog with a post inspired by a video game.

First things first. I consider Diablo 4 to be a good game - co-op mode on the PS5 is what I've experienced.

Also, important to know, I have this habit (one might call it compulsion) of connecting lessons between totally unrelated areas of interest.

With that in mind, as I was playing Diablo 4 I started drawing parallels between "how to play effectively in co-op" and "how software engineers collaborate and grow".

Know everyone's goals ahead of time

The first playthrough is akin to the first time you pair with someone when coding or the first project a new team goes through together. You don't yet know each other styles, the ways in which distractions will derail the task at hand, or even how your and your teams' energy levels will fluctuate throughout the "play".

The first time you find a treasure goblin you will get distracted. And that's probably a good distraction. It's fun, it gets your adrenaline going. The first time you find a cellar, also great - it's the unknown that gets you. Now, say it's the 100th time your partner wants you to go into a cellar because "it's quick", not so much fun.

The distractions can and will happen with a project when working together. It becomes tempting, especially when a frustrating task pops up, to check lobste.rs or X (formerly Twitter - I can't get over the new ridiculous name), or go to that useless meeting we're all too familiar with.

When I think about the flow of doing a project in a company, many distractions may end up hurting the team, the project, and overall impact it could have had.

My advice: know everyone's goals ahead of time, and make a commitment to call each other out when a distraction happens. And you can't call each other out without communication.

Communication is key

There is not a single book, parent, or therapist in this world, that hasn't given the same advice I'm about to give: communicate, communicate, and communicate.

Back to the game. The game has so many things for you to do that, especially at the endgame. The most basic piece of communication, before or while launching the game, is asking one another: "so, what are we doing tonight, nightmare dungeons, helltide events?".

Same thing goes for when you're working together on a project, with a few complexities added.

Effective communication in my view is all about 4 things tied well together:
  • who needs to know
  • why they need to know
  • what they need to know
  • when they need to know

In the context of playing Diablo 4, if you wait to tell your co-player that you want to do a nightmare dungeon after you've finished your session, you missed the "what" and the "when". When in doubt, communicate enough for you to think you're over communicating. You most likely aren't.

Back to a project context. An interesting thing happens when you're communicating in a way that makes you think you're overdoing it:
  • if you, in fact are, people will tell you to be less verbose (easy enough - I've been there).
  • if you aren't, people will also tell you, typically by asking you for updates.
  • if you are simply communicating effectively, congratulations, people think you're dope.

Not communicating properly can even lead to your own resentment, it's that important to communicate well (including timings). Remember that you only get good at something by doing it repeatedly and adjusting (even in Diablo 4) so don't fear missing the mark a few times.

Missing the mark a few times doesn't mean you'll fail, it just means you get better. And when you improve, a few things become automatic. Which means you start having more fun doing it.

Don't forget to have fun

A game tends to be a casual affair, for most players that is. It's meant to provide entertainment and provide an escape from life.

Remember how we started? Knowing everyone's goals ahead of time? If one of you wants to play hard mode and the other one wants to just explore the map, one of you will not have fun.

When working with team mates, it's very easy to fall into the trap of thinking everyone is having fun when you are having fun.

It's also easy to become all too serious when arguing about approaches, making decisions, discussing why you're right.

My advice, playing and at work: don't take yourself too seriously - easy while playing a game, difficult when at work.

It becomes ever more important to understand that if one isn't having fun, the co-op isn't working - you lose. You have to both win for the play time to be a good one.

You win when both win, you lose when one of you loses

How do you both win when you have potentially distinct intents for co-op play?

You compromise. You don't need to compromise on everything but it becomes imperative to communicate in advance, agree on the approach and then keep to it.

Take breaks if it becomes too much - going for a few runs just for a specific item drop may be fun for some but not so much for others.
If you go into it with a clear approach, having communicated well, an agreement been made, and a healthy compromise, you will both win.

The moment one of you feels like they're not getting their end of the deal, probably no one will feel like they came out of it winning.

In the lifetime of a project, it all applies just the same. You won't get to make all the decisions (not even if you're the team lead, or the manager, or the CTO). There will be compromises to be made.

The healthiest teams aren't ones that build without compromise. They are the ones that discuss the tradeoffs, compromise on the right things, and then go through the project with clear goals and an approach they're all committed to.
~ fin ~