Why you should plan iteratively

When you estimate how long something will take, about half the time it should be done early or on time. Almost anyone reading this will know things are rarely done sooner than expected, especially if they’re difficult. People have been shown experimentally to be poor estimators, with a marked bias towards underestimation of time required to complete tasks.

The Agile approach of working iteratively provides a neat way to mitigate the effects of this bias. Let’s review a typical process:

  1. For each outstanding story, estimate and make a note of the time required to complete it.
  2. Establish a time-box during which you’ll work on the stories (e.g. a week).
  3. Work on the stories until you reach the end of the time-box, not the end of the stories.
  4. Total the estimated time for each story which was completed.

You now have an idea of how much you can take on in your next time-box (your “story points”). For each subsequent iteration you can follow this process:

  1. For each outstanding story, estimate and make a note of the time required to complete it (if it hasn’t already been done).
  2. Establish a time-box during which you’ll work on the stories (e.g. 1 week - it’s best to keep the same length time-box if you don’t want to do some maths).
  3. Prioritize the stories.
  4. Commit to completing stories in the iteration (in priority order) only until the total estimated time for all of them reaches your “story points”. You very likely will not get more than this completed because this is about the same amount you got done last time.
  5. Work on the stories until you reach the end of the time-box.
  6. Total the estimated time for each story which was completed.
  7. Repeat from step 1.

A word of caution: even though what you are estimating at the start of a story is time to completion, your estimate is biased, so it is an error to treat the “points” as “time”. If you hear complaints that “stories are taking 3 times as long as they’re supposed to” or “we only got 2 days work done this week”, these are mistaken. You did 5 days of work and the stories took longer than you estimated. You just aren’t very good at estimating, which is why you should measure your bias.

See Wikipedia’s list of cognitive biases for a fuller list and better description of planning-related biases. There are some links in there that suggest more general conclusions than the one I reach above… perhaps we should be funding projects incrementally as well, for example.