It would be pretty insane to argue that regularly delivering running, tested, value-add code is hazardous to any project. But when it comes to iterations, if you’re not careful the mojo can get very funky pretty quickly. I’ve just finished reading a fantastic article by Alistair Cockburn on the misuse of iterations in agile projects… and I’ve just realised that I’m living the nightmare myself!
Alistair’s argument comes down to the fact that shipping iterations is not necessarily the same as delivering real value to the client. And it’s not the same as getting you closer to your end-game. A fave quote from the article:
_
“Danger grows when the results of the iteration are not directly linked to delivering the product to the end user. Without that linkage, iteration results hang in the air just as badly as the old, pre-agile forms of wandering in the wilderness.”
_
Reading this I started to rethink our iterations in line with the big picture of getting our product out the door. I’ve spent a bunch of time over the last couple of months “tidying” up stuff, refactoring and adding small features that don’t (1) add immediate value to the client; and (2) Move us closer to getting 1.0 out the door. Yes I am hitting iterations, but no it’s not moving us closer to 1.0. That thinking is changing today. The problem is not the iterations - the problem is that I’m not planning them properly!
In line with Alistair’s recommendations, I’m setting aside some time this week to make sure that our monthly iterations are better aligned to our end game. In essence, it’s all about delivering. Not about delivering iterations, but about delivering the features that are adding value and getting us closer to a revenue stream.
If you haven’t read Alistair Cockburn’s Crystal Clear - do yourself a favour. I have found this book a really challenging read. This really brought together a whole bunch of agile thinking into my world - and it’s the most practical and battle-tested book on small team development methodology I’ve read.
Awesome stuff…