As agile project management methods are becoming more widely adopted in companies around the world, many of those companies struggle with one of the most basic decisions when starting iterative incremental project approaches: what is the ideal iteration length to use? Let's see if we can tackle that question.
Definitions
First off, for those of you new to agile management concepts, an iteration is a defined timebox during which a portion of a solution is worked upon. There is a lot of misuse of this term, as many people mix up the terms iteration and increment.
Strictly defined, an iteration is a timebox used in an iterative project model. In an iterative model, a whole solution is developed over the course of a project, with snapshot views of "work in progress" being presented to the sponsor and/or stakeholders for feedback at the end of each timebox cycle, called an iteration. In this model, the solution is not completed and fully tested until the end of the project.
In an incremental project model, the aspects (features) of a solution are prioritized and are completed in order of priority. Each increment is a timebox during which a selected group of features are completed and fully tested. Under incremental approaches, there is no work in progress at the end of any increment. Instead, each timebox adds more complete, working features to the ones already developed, growing the completed solution over time.
Agile methods combine both iterative and incremental approaches. As such, a timebox in agile (also called an iteration) defines a cycle during which an increment of functionality is completed. Yet agile tends to have a broader view of the solution than pure incremental methods (more about that in a future article).
Standard Iteration Lengths
There is no consensus in the agile community on the ideal iteration length. The Scrum method suggests 3-4 weeks as an iteration length, while eXtreme Programming and Feature-Driven Development suggest 1-2 weeks.
When choosing a standard iteration length, you should consider your team's maturity with agile methods. Generally speaking, teams new to agile should probably start with iterations on the longer side, and then choose shorter iterations as their expertise with the new methods improves.
That being said, the shorter the iteration length, the more a team needs to rely on automated tools to help with project work. In software development projects, this means automated build and automated testing tools, primarily. This is especially important in later iterations in the project, where there is a growing list of new features that need to be regression tested every iteration - eventually, they can't be fully regression tested by hand in the available time.
Another factor to consider is the value that can be received through shorter versus longer iteration lengths. If you have limited opportunities to meet up with the sponsor and stakeholders to make end-of-iteration demonstrations and capture resulting feedback, then perhaps a longer length might be more realistic. On the other hand, if your sponsor is very concerned about eliminating risk in the project or if you want to build trust by showing rapid delivery of value in the early stages of a project, then perhaps shorter iterations are in order. You need to think about how you can optimize your delivery of business value through your iteration length. Business value is often measured in dollars, but it can also include other elements like strengthening relationships, risk reduction, improvements in service levels, rapid learning, and many more factors.
Variable Iteration Lengths
Having a defined iteration length for your project that does not vary helps the team "get into the groove" or adjust to the cadence/rhythm of working under, within a particular timebox. This iteration cadence is important in helping the team optimize their internal processes as the project proceeds through its multiple iterations. As well, it helps the team perform at higher levels, as the members can estimate more accurately and build more accurate plans.
There is a case, however, for occasionally varying iteration lengths within a project. While this can be a controversial position with some purists, it bears closer examination. In rare circumstances, it may make sense to break the cadence of the team to include a longer or shorter iteration for specific business reasons. Perhaps you have one large piece of work that cannot meaningfully be broken down into pieces small enough to fit into a single iteration. For example, if your project is to install and configure/customize some complex packaged software, perhaps the first iteration is to perform the base install, while future iterations are devoted to the customization of that package. In this case, the first iteration could be 3-4 weeks to get the base infrastructure set up and working, while future work could be a series of 2-week customization iterations. In another example, you may have standardized on 3-week iterations throughout a project to develop a new product, but then switch to a short series of 2-week iterations to rapidly adapt to feedback from key customers once the project has reached a critical mass of functionality, or after it has been announced at a key industry trade show. In both of these cases, there is a specific business benefit to varying the iteration length - though I am careful to point out that I am not suggesting that you vary the length of each iteration; what I am proposing is that there may be business value in switching iteration lengths during a project.
Please note, however, that switching iteration lengths does not come without cost. As mentioned before, you will likely break the cadence of the team, possibly reducing their performance slightly until they adjust to the new rhythm. Also, you'll have to be careful with how you are tracking and forecasting using velocity, as the metrics will recalibrate as the iteration lengths change. You may not be able to reliably compare pre-change metrics with post-change metrics, at least not without detailed explanations and careful consideration.
Conclusion
Ultimately, there is no ideal answer to the iteration length question. What is important is that you choose a length that is suited to your team, the technology available, and the project context, and the business case. While you may start with a default iteration length for your organization, it is wise to consider all of the above factors and adjust that default length if it will help optimize your project, while still respecting overall organizational objectives.
Don't forget to leave your comments below.

Click Here to login or create a free account.


Kevin Aguanno is a PMI-certified Project Management Professional (PMP), and his competence is certified by IBM as a Certified Executive Project Manager and by the International Project Management Association (IPMA) as a Senior Project Manager (IPMA Level B). He is accredited by the International Project Management Association (Geneva, Switzerland ) as a project management competency assessor, and he performs assessments for the ASAPM in the U.S.A. He is the author of over one dozen books on PM-related topics. Find out more about agile project management in his free AgilePM Newsletter at 


First, I need to disagree with your point that immature teams need longer iterations and more experienced teams can then move to shorter. My experience is just the opposite and I've heard this from quite a few Scrum / Agile coaches. The key point is that it takes quite a bit of experience to plan a 4 week sprint that truly hangs together for 4 whole weeks. Immature teams usually struggle with this length. Give them only 2 weeks to plan and their collaborative planning & tasking for the sprint becomes much easier. If a 2 week sprint team is struggling with planning, I've often reduced them to a single week--so that their planning chops improve, and then move them to 2 week sprints. So you might want to re-think that position.
You didn't mention it, but I think there's a *cost* to your iteration length selection too. Think of S-Curves as representing cumulative work over the life of a sprint. In the beginning, the team is slow to accelerate while they're starting on new work, so it may take them a day or two to really begin producing. Similarly, the end of the sprint has a flattening as well. Again, I've seen it be one to two days, as the team polishes off work, prepares for the sprint review and gets all of the working software "working". Between those two points is *acceleration*. So the shorter your sprint length, the more you repeat your S-Curve patterns, the more you incur some start/stop waste. In my overall experience, mature teams are most productive with a 3 week sprint length.
Thanks for the contribution to our community!