Ampelofilosofies

homeaboutrss
The mind is like a parachute. If it doesn't open, you're meat.

Roleplaying software development

15 Nov 2010

I spent a big chunk of my teenage and early student years with pen, paper, a bunch of dice and three to five friends around a table playing role playing games.

A good RPG team is compact (four to six persons) and balanced - has a healer, a magic user, a rogue and a couple of fighters. Good players can handle several roles and a group of good players quickly find the correct role assignments and style of play - see any parallels to software development yet?

A couple of decades after my tabletop years, Blizzard has distilled the essential roles of an RPG team into the Tank, the Healer and the Damaged Dealers a.k.a. DPS (ranged and melee). A typical adventuring party needs one Tank, one Healer and 3 DPS. It gets very hard to survive if you don’t follow these rules.

While doing a little retrospective I couldn’t help but draw parallels between my role-playing teams and my software development teams.

A good software development team also needs to be compact, to facilitate effective communication and quick reaction times. It also needs capable people with clear roles: You get the project manager, the architect, the coders, the testers, the tools guys.

It is astonishing how easy it is to map the distilled WoW roles on a software development team:

Your project manager is your Tank. His mission, to put himself in harms way, against the monsters of management and client, mark the targets, take the flak and allow the rest of the team to function effectively. If the Tank “loses aggro”, e.g. allows managers or clients to target the rest of the team, then you wipe.

Your environment/productivity engineer (the tools guy) is your Healer. His mission to keep the team ticking, repair and maintain the infrastructure, communicate bugs, automate processes and be invisible. If the Healer “gets aggro”,e.g. disrupts the team with flaky infrastructure, then you wipe.

The coders and the testers are your DPS. They are there, in the thick of it, churning out code, doing “damage” so that the Boss of Release Status is defeated and we can all loot happily. If your DPS are spread on multiple targets, your Tank won’t hold for long and…you wipe.

Teams also scale like raid parties. 10 and 25 man raids are managed more or less like concatenations of 5-man groups - sometimes you need a Tank more, sometimes an additional Healer, but those are raid-specific tactics. Everyone who has participated in a 40-man raid will tell you that it is really hard to pull off. It takes very well trained people, a lot of time, effort and dedication and it will only take one Leroy Jenkins for you to…wipe.


wipe: In WoW a team wipes when every member of it dies while adventuring. It signifies an embarrassing event that costs the players money (your armour and equipment take a beating and you need gold to repair them) and time (it takes a while to walk back to the place of your ignomious defeat).

As such, I find that a “wipe” is a very appropriate term for the result of some software projects as well.