If you can find them maybe you can hire … The B Team

Ysharros posts a really interesting link to some insider commentary on shifts in focus at WoW at the moment. Eric@The Elder Game discusses how development teams are organised on MMOs, and how staff switch focus from developing new games to running the live (maintenance) teams or vice versa; he also uses his experience to explain some of the changes we’ve seen in WoW lately.

I find this interesting because it goes a long way to explaining why the game is taking bold new directions recently (the fact I agree with them and didn’t like some of the earlier design decisions is beside the point). And also it reflects my experience as an engineer.

As a developer, it’s always more fun to be working on a project where you have lots of creative freedom and input. Maintenance and bug-fixing can be intellectually fascinating, but you always eventually come up against the wall of:

  • “All this has happened before, all this will happen again.” (ie. you’re stuck with old design decisions for historical reasons.)
  • “Here be dragons!” (ie. no one actually remembers why a particular decision was first taken but apparently trying to change it once caused huge issues that no one really understood so the devs decided never ever to change that file again … just in case.)
  • “We don’t have the budget for that.” (ie. sometimes you’ll discover an issue that really requires a large redesign of some major subsystem to fix. Forget it. Find a cheaper workaround. You’re never going to be able to justify rewriting the entire O/S file system, even if you are right.)
  • “This looks like a case for … Old Bill.” (ie. only one person still working at the company remembers the original code or why it was written in hand-crafted assembler – if you’re lucky you may find him down the pub at 3:45 on the third friday of a month with an N in the name.)

And this is why the typical length for which an engineer stays with a company is about 2 years (in the UK at least). After that, they’ll find a new project to work on that isn’t in maintenance.