Web This site

Tuesday, June 21, 2005

What's a suitable iteration length?

I favour an iteration length between 2 and 4 weeks because, in my experience, this time frame is where most agile development teams seem to settle naturally and comfortably.

Balancing considerations

When deciding an iteration length you need to balance the following:

  1. How long the customer can go without changing his mind or having to react to changing business circumstances and priorities.

  2. How long the customer is willing to wait before something valuable is delivered. Visibility is important and slicing user stories vertically and developing the functionality as successive refinements delivers tangible value progressively. Also, shorter iterations provide more regular feedback.

  3. How long the development team needs to complete a consistent amount of user stories with a given quality of implementation. Obviously a team comprising developers with advanced skills and an ability to work together effectively is able to sustain pace and produce more in less time, while maintaining quality.

2 to 4 weeks is a unit of planning (when using adaptive planning techniques) that is large enough for the developers to deliver something valuable to the customer, and small enough for the customer to give regular feedback. The success of iterations, 2 to 4 weeks in length, depends greatly on the team's ability to represent required functionality as user stories that are 1 to 2 weeks in length. You want to deliver completed user stories within an iteration so that they count towards velocity, so the user stories must fit within an iteration. It's also easier to disaggregate a smaller user story into engineering tasks, which can then be estimated with less imprecision.

Don't adjust the iteration length to suit varying releases

The goal is to settle on a fixed iteration length as soon as possible. Do not adjust the iteration length on an iteration-by-iteration basis. Doing so will destroy any chance of attaining a development rhythm which delivers completed software in a repeatable fashion.

My strategy

When coaching Scrum I usually start with a 30-day iteration but I try to reduce that to a 2-week iteration as quickly as possible, providing it suits the business and the project. When coaching XP I usually start with a 2-week iteration. I resort to 1-week iterations, as a temporary tactic when a development team is struggling with the cycle and iterative development, generally. Once they grasp the cycle and deliver consistently and at a sustained pace I usually revert to a 2-week iteration in order to deliver more value for the customer. Iterations shorter than 1 week tend to be chaotic because everything is imminent. Iterations longer than 4 weeks seem like a lifetime and it's easy to lose any development rhythm because the end of the iteration is too far away from the start.


Tags: , ,

1 Comments:

At permalink, OpenID Haggisdog said...

This is a useful topic and tackles a challenge that faces many of the projects that often struggle with introducing iterative and agile techniques.

From my experience, some signs that your iteration length isn't appropriate are the following:
- missed demos
- 'sine wave' velocity from one iteration to the next
- business sponsors struggling with how iterations are 'useful'

I put some similar ideas on my blog entry around the same topic, http://bryancampbell.com/blog2-mt/mt-tb.fcgi/4

 

Post a Comment

Links to this post:

Create a Link

<< Home