Wednesday, November 14, 2007

What is the optimal iteration length in Agile Projects ?

The recognition of the Agile methodology and approach as a software development processes has led to an increased popularity in iterative development, whether those teams go so far as being Agile or not. An important concern in implementing an iterative process is selecting how long your iteration will go for. Common recommendations and practices vary from a one-week iteration process (in Extreme Programming) to a month-long iteration (Scrum), while some Agile projects’ teams tend to use much longer iterations.

One of the advantages of short iterations is the availability of the first shippable features after a very short amount of time. It also keeps the team focused on the goals for the current iteration, and the tight learning feedback loop allows the developers for rapid discovery of new and often optimal solutions.

On the other side, the intensity of work needed to complete short iterations can be exhaustive, as clear and strategic thinking can be hard to get in the given time. Furthermore, the potential time spent in waiting for people or resources not part of the team will be likely to extent the duration of the iteration.

But too long an iteration may subvert the core motivation for iterative development and tend to increase the project’s risks.

Nevertheless, an experienced Agile team working on a highly exploratory phase of a project may benefit from a long iteration (i.e. around four-weeks). Indeed, this gives the team enough time to investigate and pursue more creative solutions than they may have time for with shorter iterations.

Conclusion

One of the main goals in selecting an iteration length is finding one that encourages everyone to work at a consistent pace throughout the iteration. If the iteration is too long, there’s a natural tendency to relax a bit at the start, which leads to panic and longer hours at the end of the iteration. One must strive to find an iteration duration that smoothes out these variations.

Once we determine the appropriate iteration length, we should stick with it. Agile teams will benefit greatly from having a rhythm to their projects. Any regular iteration length can indeed provide this rhythm. This does not mean that we are not allowed to experiment with a different iteration length in order to find the optimal one, but rather try to avoid bouncing among different lengths without good reason.

0 comments: