Clock Blog

What World of Warcraft taught me about Project Management

Posted on Friday, 6 May 2011 @ 12:45 GMT in tech-blogs by Kosala Ubayasekara

The Lesson

Until about 4 years ago I was a major elitist when it came to work and skills. I just refused to work with people below a certain standard of coding or execution excellence and often found myself struggling with projects that, despite have elite teams of people throughout, never seemed to go exactly as planned. It used to frustrate me, occasionally enrage me and leave me perplexed.

About 4 years ago I started playing WoW. I got into it to get an escape from real life rigours of IT work and wanted to have a fun, collaborative place to play. I enjoyed the game immensely and eventually started my own guild with a bunch of people I met in PUGs. Adult players like myself, who did not power game, but wanted a good experience on the few hours we had. Molten Core raiding had just started happening in a big way and elite raiding guilds were emerging all over the world, for better and for worse. Most of these guilds rejected and frequently threw out players that were not elite, sometimes failing by only a small margin. Consequently, these people were disappointed and often sad while gaming. This was something I never understood in the gaming world - the lack of inclusion. So I started picking up these players into my guild, and essentially building a guild of people that were rejected from other guilds due to a lack of perceived skill.

The fun started to happen when I started organising raids in my guild. We set off with passion and fervour into Zul Gurub and I remember those days as feverish raids. We refused to use vent so I was typing commands furiously into the chat (hilarious typos emerged from this period) and people were running around like crazy, no coordination, no focus - in fact behaving in exactly the same way that got them thrown out of proper raiding guilds. So I thought...this is never going to work.

You can't climb the ladder of success in anything and pull it up after you, that's not how life works.

After a few fruitless encounters I decided to do some out-of-raid-time tutoring. I grabbed the weak members that were trying to do things they could not, and spent time figuring out what they could do well. I paired weak members with strong ones to create offensive /defensive balances. I forgave mistakes (even serious ones) and gave people multiple chances, encouraging our pro players to not reject the weak ones but to guide them to great strengths instead.

Over the next three months we conquered Zul Gurub and brought it into farming status and over the next few expansions conquered all the raid content the game through at us, transforming that rag tag bunch of rejects from other guilds into a top 5 ten man strict raiding guilds on our server by the time Cataclysm hit despite being a casual guild. The break through came in Burning Crusade, when our first run into Karazhan I was boggled to find I did not need to give a single order in boss fights. I watched with amazement as each individual member of our  ten man team played with exceptional situational awareness, tanks moving to grab mobs that come out of the woodwork, priests being shielded by the dps and CC'ers...and all of this with no leadership effort on my part at all. It was epic.

This transformation of our guild happened over the space of three years and as this learning experience happened in the game it started leaking out into my real life as well. I stopped building teams of elitists and started building teams of complimentary skills. Academics mixed with street smarts, elite mixed with gut feeling driven, supporting roles mixed with leaders. Suddenly my projects started coming together, results appeared, timelines were met - clients were happy. So what did this translate to in reality?

Team Makeup

Successful teams are not homogeneous in skill quality. In other words a team of people with the same level of skill at everything will think in the same way, and therefore not adapt to change. What does need to be homogeneous is attitude. It takes only one person with a bad attitude to ruin everything. Its better to have a person of mediocre skill with a great attitude than the reverse.

Strong members must help weak members get better. If your skills are greater than your neighbours, it's your job to help them get better. You can't climb the ladder of success in anything and pull it up after you, that's not how life works.

Adaptation to change is a key to success. The best laid plans fail, get over it and make another one.

If you have a successful team, don't mess with it. If you have a team of people that play / work well together, don't change it. Adding or removing a member can throw the entire team into a new learning cycle of team and skill balance that can be time consuming and costly.

Incentivise for success. Everyone is driven by different things. That is OK. DON'T try to make everyone motivated for the same reasons, DO try to get them all pointed in the same direction for their own different reasons.

The right person for the right job. Everyone can't be the leader, no matter how cool it is. Strengths should play to team success, avoid ego's getting in the way. High level specialists do NOT make good leaders. High level generalists do. Specialists should be incentivised to do what they are special at.

The Example

Lets take a look at how to do this in an typical group example, say a technology team and analyse the role make-up:

Technology Lead (in WoW this is your raid leader)

This person is usually someone that has a lot of client contact and is also responsible for the overall technology vision. This should be a high level generalist with a broad technology skill set and very good grasp of translating technology to business value. If this person is the best coder in the team, then you have hired the wrong developers. This role provides vision, leadership and motivation for the unit.

Team Lead (in WoW this is your class leader)

This person is your best developer and has won the respect of the team though his excellence in code delivery. His job is to lead the execution of the plans and goals set down by the technology lead. Detail oriented, quality concious and rigorously devoted to churning out the best possible result.

Senior Developer (in WoW this is your best performing class member)

This is your experienced developer, it his job to assist the Team Lead in execution and train junior developers and make sure they are up to scratch.

Junior Developer (in WoW this is your class team members)

This role is supportive in nature to the team and is gaining experience by inclusion, exploration and observation.

The Incentives

Technology Lead

This person is incentivised by ownership/rewards and recognition outside of the team. The value of this employee should be acknowledged in the company at large outside the technology team and freedom and ownership is the proper incentive for this role.

Team Lead

This person is incentivised by ownership and rewards. Immediately reward successes and give the team lead greater and greater freedom as he earns that right.

Senior Developer

This person is incentivised by rewards and status. Tougher projects on completing existing ones well, public commendation within the team when coding excellence occurs.

Junior Developer

This person should be incentivised by recognition. Applaud his successes, be quiet about his failures and do one on one tutoring to educate past them.

blog comments powered by Disqus