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.