Rolling Wave Planning and Progressive Elaboration

Posted on August 5th, 2008 in Agile by siddharta || No Comment

A general rule of estimating is that the more you know about something, the easier it is to estimate. The less you know, the harder it is to estimate.

As a project goes on, you learn more and more about the project, modules and tasks. So that means the start of the project is when we know the least about the project. Applying the above rule, estimates are least accurate at the start. Yet, thats when almost all the estimates are done!

There are two solutions to this: One solution says that you must find out every single detail about the project right at the beginning and then use that to arrive at an estimate. Traditional project management processes often follow this method. There is a lengthy requirements elucidation phase where every requirement is brought out to the last detail. But what happens when requirements change in the middle? Thats the problem with this method. Also, studies show that the estimates arrived at aren’t all that accurate anyway.

Another way of estimating is what is called rolling wave planning. In rolling wave planning, you do a very approximate high level estimate of the project, and do detailed estimates only for the requirements that are being worked on. As you work on new requirements, you estimate them in detail. Agile processes often advocate getting detailed requirements only for the features that are going to be worked on in the current release. So there is a good fit for this type of planning.

Here is what I usually do:

  1. Decide on a release timebox for the project. This may be one week, two weeks, one month. Whatever your team is comfortable with.
  2. Look at the requirements on a high level and have the team decide approximately what you can release in each release cycle. Since this is a high level, approximate estimate, you don’t need to be too detailed. It’s just there to provide a rough idea about how the releases will develop.
  3. At every iteration planning meeting, sit with the customer/product owner and decide what you are going to do in that iteration. At this stage, you can ask for more details, and the team can come up with a more accurate estimate based on the details that you now know.
  4. At the end of the iteration, update the high level overview with any new information that you now have.
  5. Repeat steps 3 and 4 for every iteration.

As you see, you estimate at a high level when the details are not known. Then you progressively estimate in detail for the current requirements that you are working on. Thats basically the idea of rolling wave planning.

For more on rolling wave planning, check out this article by Johanna Rothman.

Doing Distributed Agile?

Share and collaborate with distributed teams with our electronic agile board tools. Get all the benefits of electronic tools without sacrificing the benefits of physical boards. Supports Scrum taskboards, Kanban boards and user story maps. Check it out!

Leave a Reply