The Benefits of Short Iterations, or Why Time is Like Closet Space
I’ve always used the maxim that time is like closet space – the more you have, the more you fill it up with stuff! (I recently moved to a smaller space and experienced this personally.) Something similar tends to happen with longer iterations – if you know you have 3 or more weeks to complete something, it’s easy to let the planned scope of the iteration creep up –“while we’re at it, why don’t we also do…”
When you have a short amount of time, you are more likely to focus on the planned work and not let additional scope creep in. With my smaller closets, when I buy something new, I have to get rid of something to fit it in! Another maxim is that work expands to fill the available time. I’ve noticed that teams working in 3 or 4-week iterations tend to be pretty relaxed in the first week or so, then start picking up speed as the deadline gets nearer.
During 2 week iterations, there is usually more urgency and more focus since the end is always looming. Other benefits of short iterations (2 weeks or less):
- Making sure you’re on the right track. Short iterations mean more opportunities for customer feedback on the user stories you have completed. When there is a lot of uncertainty, getting feedback, realizing you went down the wrong track, and having to change what you built is a lot less painful if you spent only a couple of weeks on it.
- Short iterations make iteration planning easier, especially in environments where people work on multiple projects. It’s much easier to get a good sense of a team member’s availability over the next one to two weeks and get a commitment during that time frame than it is to figure out team availability over the next month or six weeks. In the 2-week iteration capacity table below, we can tell that we won’t have much time from John and Keith. If we plan to implement a user story that needs their skills, we might want to pick a different story and wait until they come back from vacation to do the other one. Since Paul and Mick are only partially allocated to this project, maybe the team can get some more of their time over the next two weeks to make up for John and Keith being gone.
- Longer iterations tend to involve larger user stories, while short iterations tend to focus on several small stories. From a throughput standpoint, doing several small stories allows team members to work on different aspects of the stories simultaneously, or switch to a different story if they get stuck. With larger stories, the work can often be more linear and not allowing for as much flexibility. Smaller stories are also easier to break down into small tasks that are easier to estimate accurately than larger stories and tasks.
To learn more on this topic and other Agile Techniques, check out this survey from VersionOne software. For short iterations, it is very important for stories to be ready in order for the team to make the most of the available time, but that’s a subject for another blog post!