The Cost of Change

This is a quick’n'dirty picture of the cost of change (y) against time (x) on a Big Design Up Front project (red) and an Agile one (green). For the colour-blind, the Agile cost is the one that stabilises with time, rather than growing exponentially.
This is how the argument goes:
- In a BDUF project, the requirements are elicited from the customer and written down. If at any point the requirements change, the document must be updated.
- Then the requirements are turned into a high level design. If the requirements change, the high level design and the requirements document have to be updated.
- Then the high-level design is turned into a more detailed low-level design. If the requirements change, the high level design and the requirements document and the low-level design document have to be updated.
- Then the code is done. After that, the code is tested. Then, the code is integrated. Now if the requirements change… well, you get the picture.
- In an ideal Agile project, because the code is largely self-documenting, we don’t do any more design up front than we have to and we practice continuous test, *integration, release and many other forms of frequent feedback, the cost of change is kept low.
I would like to remind myself and anyone else who needs it that the cost of change on an Agile project, while comparatively small, is not zero.
Update: The quick’n'dirty explanation and picture above are huge approximations meant to serve as a rough context for the reminder at the bottom – the non-zero cost of change. There are better explanations and more accurate pictures around which have been crafted by far greater authors. Apologies to anyone who thought I was redefining the wheel; I have added the * clauses for clarification.
Ten Tips for the Agile Martian Coach
- Communication is important. Ensure that your Martian has a working translator. Provide expletive vocabulary as required.
- All Martians look alike. All humans look alike. Wear name badges and teach each other how to pronounce them.
- Remember that alcohol may have unexpected side-effects when fed to extra-terrestrial life forms.
- At brown bag lunches, prevent your Martian from eating the brown bag. The extra fibre will not be conducive to a good working relationship.
- On no account should you tell your Martian that there’s more than one way to skin a cat.
- Your Martian may have a higher technical capability than you do. Make careful notes of anything that he produces which seems to break the laws of physics.
- Resist the temptation to use time travel to go backwards and give yourself more time to meet important deadlines.
- Resist the temptation to use time travel to go forwards and recover the repository from the future, saving yourself the effort of writing all that code.
- Some tools are more appropriate for each job than others. There is no job which requires a sub-ether laser set to “annihilate”.
- Be careful of misunderstandings when teaching your Martian to pair.

Comments