During development we want to constantly measure how much more work we have to do and how fast we are doing work so that we know where we’re at. Mike Cohn uses a nautical metaphor in his new book, Agile Estimating and Planning , to explain tracking a release. He identifies 3 factors that should be taken into account:
- The amount of progress that has been made by the development team.
- Any changes to the requirements.
- Developers may have learned things that make them want to revise estimates for future work in the release.
- How much more work we have to do = Relative distance still to be travelled by the aeroplane.
- How fast we are working = Aeroplane’s velocity.
aeroplanetrackingmetaphor
Originally uploaded by sjb140470 .
Drag (changes in requirements) will cause the aeroplane to travel less distance than expected, and if the cross-wind (changes in the estimates) blows from the north while the aeroplane is heading west, the aeroplane will also drift to the south. Without course corrections, the aeroplane will take longer to get to the target destination.
The metaphor has more mileage (if you’ll forgive the pun :-) …
- Adding legs to a flight is like adding user stories to a release. You can add all the legs you want, but unless you can increase the aeroplane’s speed you are going to arrive at your destination later.
- Increasing the speed of the aeroplane by increasing the engine size is like adding more team members. Installing new engines will cost installation time.
- Increasing the speed by pushing the engines harder is like working overtime. But this will decrease the engine’s life span.
- Aircraft maintenance is like unit testing and merciless refactoring . Neglecting ongoing maintenance can be expensive with an aeroplane (project) grounded when it’s supposed to be in the air or an aeroplane crashing to the ground.
- Boarding a plane is like release start-up overhead or iteration zero .