13 Mar 2009

Not Release Planning is flying blind

I have seen quite a few Agile projects go bad over the last few years. This has either been down to poor engineering or poor planning. The biggest problem with poor planning is with inadequate Release Planning.

Agile software development approaches are focused on delivery within a fixed timebox. XP calls these Iterations, Scrum calls them Sprints. It is an very effective way of keeping on track. But you still need to know where that track is – and to do that you need a plan (however light) that gets you to a releasable system.

Why? It allows us to get a quick feel for how big the project is. It allows us to prioritize stories into iterations (highest business value first).

By decent planning I don’t mean Gantt charts, resource allocations, nor even milestones. But the team does need, at a minimum, a rough idea of the stories required to make a minimal releasable system. Battle tested Agile approaches (and non Agile approaches) understand this. In the RUP world there is the Inception phase, in XP there is Release Planning and in Scrum there is the Product Backlog.

This Release Planning takes time – and that time needs to be before we sit down and plan our Iterations. It doesn’t need to take a lot of time, ideally a few days, probably less than a couple of weeks. But it is not instantaneous – time needs to be spent establishing stories and prioritizing them. The plan doesn’t need to be perfect – nothing more than a list of stories. But, it without a release plan guide the iterations, jumping straight in is flying blind.