April 11, 2008

...Learn TDD with Codemanship

Phase Transition Illustrates Waterfall-Agile (or is it "WAgile")?

I sat in a planning meeting today where the project manager had stuck all the user stories and development tasks up on a big glass window - well, actually it's a big glass door, but apparantly we're not allowed to open it, so it is - to all intents and purposes - just a big window with door handles on it.

This is an interesting project because the team - largely new to Agile and all that lovely hokum - have done a cracking job and most of the jigsaw pieces have fallen into place. Where they've been hampered, though, is in the difficulty they've had engaging with business customers and getting the kind of continuous feedback that Agile really requires.

Anyhoo, the PM stuck up the stories for every iteration - those that had been completed in iterations of yore, and those scheduled by the Ghost of Iterations Future. The team are using colour-coded story cards, so green is a feature, pink is a bug fix, blue is a technical story (e.g., migrating a database) and so on.

Squinting at the display of story cards laid out before me, I could see that the later iterations looked distinctly pinker than the earlier ones. Indeed, the seam of pink started several iterations into development. And, knowing what I know about the project, I figured this might be because that's when feedback from testing started coming in - their having delayed it for quite some time after development started.

And usability testing was still to come, so this was feedback from a software tester and not from the business customer. So I suspect the degree of pinkness might be about to increase significantly.

It reminded me of something, and I just figured out what it is: it's a phase transition. We might quickly transition from mostly green to mostly pink. And this is surely an effect we wouldn't see on a genuinely Agile project. If the feedback comes in continuously throughout development, then we might expect a steady trickle of pink story cards, but our Door-Window display would still look mostly green right up to production release. (Though I should stress, this is all conjecture on my part - we might sail through UAT, though that would be a more optimistic outlook.)

An artists impression of a waterfall Agile project. This is NOT based on real data, and any resemblence to projects living or dead is entirely coincidental...

And the total area of pink for the whole release cycle and beyond would probably be significantly less. Why? Well, one obvious reason is that we would get fewer compound errors. If we get something wrong - say a business rule - in iteration 1, and spot it in iteration 1, then anything depending on that business rule is less likely to be wrong in iterations 2 and beyond. To fall back on a maritime metaphor - we'd waste less time steering our ship the wrong way if we took our bearings and made appropriate course corrections more frequently along our journey.

It's a bit of a shame, because the team have done so very well despite lack of customer input and feedback. sadly, I'd have to class the project as a mutant hybrid - a sort of Waterfall-Agile, if you like. Or how about "WAgile"? Yeah - WAgile Software Development. It has a certain ring to it. Agile in every respect except the one that makes most of the difference, alas. It neatly describes the process of taking great Agile teams and then starving them of customer contact.

But I think the Green-Pink phase transition illustrates it starkly and rather beautifully. (And, yes, having a "stabilisation phase" at the end of your delivery cycle is another view of the same effect.)

The happy ending for this story is that if, if they make into Phase #2, it's more likely they'll have the customer involvement they need. So don't have nightmares...

Posted 13 years, 10 months ago on April 11, 2008