Up-front analysis – the Agile way!
February 10, 2009
Some agile practitioners exhibit a sort of zealousness that characterises the recent convert, so that anything that might have even the slightest whiff of old-school/traditional/waterfall/dinosaur project management is seized upon, exaggerated and trounced, usually with sarcasm.
Estimation, documentation and process are three popular targets for derision, but the favourite is surely “up-front analysis”.
And often rightly so. If “up-front analysis” means spending a substantial proportion of budget, prior to any design or code, trying to identify every last need that must be addressed and every little featurette that a complete system/product must deliver, then I’m first in line to denounce it.
But this doesn’t mean we must denounce any and all up-front or pre-build work. In fact I staunchly believe that the right highly focussed up-front work is one of the most valuable, arguably one of the “most agile”, of all activities.
Highly focussed, highly valuable up-front work simply means ensuring customers, users and suppliers understand (before coding begins)…
- why the business is investing
- how value-for-money will be understood
- who’ll be doing what
- how much is currently expected about what the products will look like
- who’ll be affected by those products
- current attitudes towards time-scales
- who needs to be kept informed of what
- who gets it in the neck if delivery fails to meet expectations
- how the products will be run once they’re released
There is nothing predictive about the facts being collected, they simply summarise what is understood before work commences. Little or no analysis is involved, just some leg-work and a bit of thought about what we’re trying to achieve and the approach we’re going to take. This work should take as little effort (provide as little detail) as possible to be effective, and as much effort (provide as much detail) as necessary to be effective in light of the level of investment.
To avoid Pavlovian responses to the up-tight expression “up-front”, I usually use “kick-off” when referring to this pre-coding work.
The objective is a collection of highly relevant facts that would in most cases fit on the back of an envelope. And so I also advocate we write-up what’s been agreed, creating a “kick-off document” (cue howls of derision).
More on the “kick-off document” in my earlier post