Building Software is an MMO, Here is How You Play

Building Software is an MMO, Here is How You Play

Glory and loot aren’t found, but wrenched from evil claws by might, will, and strategy well applied. The greatest of boons come from the ultimate showdown: the boss fight, the most demanding test of a team’s skill and coordination.

Your engineers battle big-baddies daily — but are they as effective as MMO players in achieving a swift burn-down of their foes?

Don’t try this alone

World of Warcraft is impressive for its entertainment value, its cartoonish beauty, and the strength of its addictive pull. From a game design perspective, however, especially remarkable is the peerless execution of setting up complex boss battles, and total refinement of the role-based “Trinity” mechanic players must master to win.

As it happens, constructing software benefits from mastering the same mechanic, but most teams don’t know that they’re playing a similar game.

So before your team ventures out next, let me share the fundamental Trinity strategy of the MMO pros, and how to deploy it for efficient teamwork.

The MMO Holy Trinity of Team Roles

For the uninitiated, boss battles in MMOs require team coordination through specialization. The smallest team that could succeed is composed of a Damage Dealer, a Tank, and a Healer. This configuration is known the “MMO Holy Trinity.”

The Damage Dealer ⚔️️

Human Rogue!

Crouched to the side of the big-bad’s peripheral vision, a rogue issues a scimitar flurry of rending slashes, while at longer range, a wizard shoots potent fireballs — the sort of attacks that given just enough time can slaughter the most frightening of fiends.

These are the Damage Dealers ⚔️️

They train in combat exclusively focused on tearing flesh from bone, and waste no energy concerning themselves with defense. Instead, they measure their success with a single KPI: sustained DPS (damage per second). But these myopic, glass-cannons cannot do what they were born to do without protection.

The Tank 🛡️

It takes a uniquely bold hero to advance upon a gargantuan-horror, stare that certain death in the face… and taunt it.

Draenor Warrior!

Positioned in front of the enemy, armor shining, teeth grit, she gains the beast’s singular attention and readies herself to take a beating.

This brave character is the Tank 🛡️

Though she may opportunistically strike with her sword, the Tank’s specific duty is to draw the full ire of the beastie, soaking up as much damage, and surviving for as long as possible, so that her teammates can focus & specialize in something other than being a human lightning rod.

But dragon-kind are hardier than hominids, and even the most robust knight can’t last forever without support, and so she relies on the grace of others.

The Healer 🙌

The pairing between Damage Dealers and Tanks works wonders as long as the Tank can stay alive, but what could that team accomplish if someone could channel divine favor into unnaturally extended battlefield endurance?

Elf-ish Priest!

The priest, the cleric, the druid of the group, these are the characters who transmute virtue into the hard currency of hit-points that Tanks need to survive, prolonging the distraction gambit while the Damage Dealers focus fire.

And even when battle plans invariably go sideways, these spiritual characters can save a vulnerable Damage Dealer from an unexpected sneak attack.

These supporters are known as Healers 🙌, and they form the final pillar of this deadly trinity.

This triad is the “minimally viable team” of the modern MMO, and together, there is no challenge they can’t overcome — and the same can be true of your engineers if analogously coordinated.

From the Dungeon to Your Office

While you likely don’t have building-sized dragons attacking your colleagues, your team is still playing a sort of engineering boss-battle, except that your “big bad” is a complex bundle of work, fought in hand to hand combat every day (and occasionally beyond).

If you have yet to organize your developer efforts in the same way you’d structure your raiding party, you’re missing out. Let’s fix that!

Role Call

First, understand that no one person can down the work-beast alone, and the foolhardy that try meet an inglorious end of burnout, and failure. This is a team effort, requiring the buy-in and support of every member.

At the beginning of the week, or once daily if you prefer, convene and lay bare the work to be done in front of your team, sizing up your enemy. Then, elect at least one Damage Dealer, one Tank, and one Healer from the group (of course, you can have more than one of each, but you must have at least one of each. We’ll return to this).

Choose your role!

Your Damage Dealers ⚔️️ are given the scariest (important, but not necessarily urgent) parts of the monster (workload), and focus-fire it into oblivion. That’s it, that’s all they do. They work on the important. Once the “battle” begins, Damage Dealers gain adrenaline-induced tunnel vision until they destroy their target. Building product is hard, and the most important work is often the most subtle. It benefits from quiet, single-minded, uninterrupted attention. You must elect your Damage Dealers and imbue them with the “social right of refusal” to empower & protect them so that instead of delivering incremental improvements, they are unlocking meaningful new value for your customers. Don’t call Damage Dealers, they’ll call you. Seriously. You’ll know your Damage Dealers are operating correctly when no one hears from them for hours at a time. This is how work gets done.

In order to survive uninterrupted, Damage Dealers need the foundation of a solid ️Tank 🛡️️. The Tank’s responsibility is walking right up to the writhing mess of incoming requests & requirements, and staring them into submission. Every bit of existing work is “pulled” (taunted) by the Tank, as well as any incoming bit of new work (an ‘add’ in MMO parlance). The Tank is responsible for shielding others from all distractions, old and new. If somehow a monster/task/request creeps up (Slack message, email) and interrupts their firestorm, the Damage Dealer asks the Tank to step in. The Tank can nibble at the work themselves, of course, but their priority isn’t sword-swinging. Their priority is defending the team from the world so that others can specialize and deliver. Your Tank should let the broader organization know that they are the protector of the team’s scarcest resources (time & attention) and all requests should come through them first. Thus, their work includes coordinating development priorities, resource gathering, bug triage or detective work, taking on some of the support burdens, and being available both internally and externally (If you’re familiar with Agile, the Tank is analogous to Scrum Master).

But Tanks cannot last long when the broader organization sees them as stone-wallers delivering slowly and infrequently, even if the output is good. Occasionally the system needs slack to allow urgent work to happen immediately, without sacrificing a Damage Dealer’s intense focus to pay for that context switch.

Enabling this slack-in-the-system, we have the Healer 🙌. The Healer keeps the Tank from collapsing under the mounting burden of urgent work someone must do and simultaneously keeps Damage Dealers focused & alive by dealing with any adds (distractions). In practice, this means Healers work closely with Tanks to handle tasks on a more real-time, responsive basis. What happens when management throws a critical monkey wrench at your team? You have the Tank hand it off to a Healer, keeping your tunnel-visioned Damage Dealers protected, without missing a beat in the eyes of the broader organization. Secondarily, Healers themselves are direct resources for Damage Dealers who may need help when unexpected or tangential-but-critical work arises. Is there a bug in an unrelated part of the codebase blocking your Damage Dealer? Bring in the Healer! It’s fair game to interrupt them because Healers exist to provide the system with flexibility, handling important, or just plainly urgent forms of work. Frequently, this means bug-fixes, shorter incremental work, and technical customer support. All of which are important, and because those forms of work lend themselves to shorter time-chunking and rapid reprioritization, it’s best left for the folks wearing this support-oriented mantle.

In Practice

No one should be married to the last role they happened to choose, in fact, it’s appropriate for them to ‘re-spec’ weekly or even daily, provided the team has one member of each type. Some days you’re focused and ready to do high DPS, other days you may want to play a support role, and sometimes you’d prefer to coordinate a given project. Is your team larger than three people? Great, double up on roles! Your north-star is arranging your team to do the most DPS (damage per second) by having the maximum number of Damage Dealers you can, with the minimum necessary Tanks and Healers to support & protect them. Maximizing quiet time spent on meaningful work is how you effectively accomplish big things.

Two more practical pieces of advice. First, share this article with your team and those that would seek to interrupt them (Yes, I’ll be personally flattered, but moreover others should know what you’re up to and why). Build the language and understanding of these various roles.

Ready for adventure

Second, if you use Slack, have your team explicitly set their status-emoji to their current role: 🛡️, ⚔️️, or 🙌. Actively work to reinforce the social norms of how this system works. The outside world goes through the Tank when it needs something. The Damage Dealers are left entirely alone to focus, seeking others only when they themselves need aid. Healers keep the system greased, dealing with urgent and incremental forms of work, and helping un-stick Damage Dealers in times of need.

Happy Hunting.

PS: Damage Dealers may also use ☄️ because wizards are super cool.

PPS: We are, a high-powered team slinging some fascinating technology to improve a product our customers love, and, we are hiring. We’re remote friendly, but it makes the board gaming a bit tougher. We’d love to hear from you.