- Overall Length of the Release
- Amount of Uncertainty
- How Long Priorities Can Remain Unchanged
- The Overhead of Iterating
- How Soon a Feeling of Urgency Is Established
- Project Example
- Making a Decision
How Long Priorities Can Remain Unchanged
Once a development team commits to completing a specific set of features in an iteration, it’s important that they not be redirected from that goal, so people outside the team shouldn’t change the team’s priorities during an iteration. Therefore, the length of time that priorities can go unchanged is a factor in selecting the iteration length.
A key consideration is how long it takes a good new idea to be turned into working software. Consider the case of a team using four-week iterations. If we assume that new ideas are equally likely to occur at any time during an iteration, then on average a new idea can be said to occur in the middle of the iteration. That new idea will be prioritized into the next iteration, which starts in two weeks. It will take another four weeks (a full iteration) before the new idea shows up as potentially shippable, working software. This means that there is six weeks from new idea to shippable software, as shown in Figure 1. The key point to remember from this example is that the time from new idea to working software will be an average of 1½ times the length of the team’s iterations.
Figure 1 On average, a change is delivered 1½ iterations after it’s identified.