05 July, 2011

Agile - do you speak it? A late night rant.

Agile development methodology have made quite an impact in game development companies, but my experience have been that the adoption is severely flawed. Management usually sees SCRUM, kanban and other agile methods as a silver bullet that will solve all their planning problems and save them investing the time and effort understanding what it is all about.

In my mind, agile development has a lot in common with theoretical physics. Consider the Heisenberg uncertainty principle. It states that there is a relationship between the accuracy with which you can measure the velocity and the position of a particle. If you want to know exactly where a particle is, you cannot know how fast it is moving (and vice versa). Agile development realizes the same principle applies to project planning and management. You can not know both the scope and the time of a project! However, the corresponding Planck constant remains to be determined :)

In agile practice, this usually means that you set a fixed deadline (measure the time property), and let the scope vary. By ordering all tasks by priority, and making sure all tasks are done before moving on to the next task (with some definition of "done"), you make sure that by the time you reach the deadline, you have as many features complete in your software as you possibly can within the given time frame.

And this is where most game companies fail. They think that they can still wave their magic wand, set a fixed deadline and a fixed scope, and their "agile" method will somehow fix everything and guarantee the production meets the deadlines. And in the end it results in a massive crunch period since the guesstimates at the project start were way off.

It's time to wake up and smell the coffee. You cannot cherry pick all the good bits and ignore the (potential) drawbacks. If you plan on using an agile development method, please make sure you invest the time to fully understand the implications of that choice. Blindly trusting the agile fairy to fix your production and resorting to crunching for months and months because you failed to understand the basic principles is not going to solve anything.