When I talk to people who are doing Agile development, one of the first questions I often ask is “How long are your iterations?”. I ask this not because I am looking for the one magic answer, but to see the variation in iteration length and how people arrived at that decision. Iteration length is very product and team dependent.
Most of the answers I hear are around 4 weeks, with some as long as 3 months. When I say our iterations are 2 weeks I often get a few raised eyebrows.
One of the reasons we went with such a short iteration time is that we have a significant internal R&D “customer” presence. Having a short iteration time allows us to respond quickly to requests for new functionality.
Our internal customers are part of our iteration planning and it is great to hear them talking about iterations. Rarely do I have someone pop in and say “I have to have this now”. More often I hear “Can we get this into the next iteration”. That tells me that our iteration length is working for our internal users and they are not tempted to work around the iterations. That really lets the team focus on the task at hand and not get sidetracked by changing priorities.