Selecting the Right Iteration Length for Your Software Development Process
The increased popularity of agile software development processes over the years since the signing of the Agile Manifesto has led to increased popularity in iterative development, whether those teams go so far as being agile or not. A key consideration in adopting an iterative process is selecting how long your iterations will be. Common recommendations vary from one-week iterations for extreme programming teams to month-long iterations for Scrum teams. Some teams use even longer iterations, but most teams have settled on an iteration length between a week and a month.
There’s no magic length that’s right for all teams under all circumstances. Further, the right length for a team on one project may not be the right length for that same team on a different project. Because choosing an appropriate iteration length is an important decision, this article presents the most important factors you should consider when selecting an iteration length for your team.
Overall Length of the Release
Short projects benefit from short iterations. The length of a project’s iterations determines the following:
- How often the software can be shown (in potentially shippable form) to users and customers. Yes, of course, the software can be shown at its mid-iteration quality level to these audiences, but the software usually is of potentially shippable quality only at the end of an iteration.
- How often progress can be measured. It’s possible to get a sense of a team’s rate of progress during an iteration, but only at the end of an iteration can we accurately measure how much work has truly been completed.
- How often the team and its customer can adjust project goals. That is, without introducing "requirements churn" or chaos into the project by allowing major changes during iterations.
If a team is working toward a release that’s perhaps only three months away, month-long iterations will give the team only two opportunities to gather end-of-iteration feedback, measure progress, and adjust priorities. In most cases, this number will be insufficient. My general rule is that any project will benefit from having at least four or five such opportunities. If the overall project duration will be four or more months, it might be worth considering monthly or four-week iterations. If the overall release schedule will be shorter, the project will benefit from proportionally shorter iterations.