Throughout my career, I have experienced multiple planning approaches in software companies. A lot of times, there were not concrete frameworks or specifically defined planning processes, but rather an amalgamation of practices that were ultimately necessary to pursue a specific goal. For example, there was a broad understanding that Agile is a completion of a project in a dynamic and flexible manner. It gave us the freedom to change requirements frequently on the fly and focus on clients’ needs, but unfortunately it often did not correlate well with constraints on resources. This often resulted in delays and failed deadlines. To fix this problem, a practice needed to be introduced that would have allowed us to do things in a flexible manner, while simultaneously providing good predictability for the company, technical project managers, and clients. Today we will be talking about Rolling Wave Planning as the ultimate technique to achieve robust yet highly predictable schedules with Agile.
Rolling Wave Planning is a project management method where the planning is done in waves, basically in multiple levels. Long-term planning is done as a first wave in the beginning of the project, where the vast majority of requirements are not yet clear, and a lot of assumptions are made to put together the estimates. The result of this planning phase is a high-level estimate and a schedule. Afterward, shorter-term planning is performed in follow up waves. In those waves, the requirements are assumed to get clearer, and subsequently the estimates and schedule may be defined with better details and precision.
Example
Let’s take a look at an example. Suppose we have a quarterly roadmap for our deliverables, and we use Scrum to arrange the development work in iterations. When planning for a quarterly roadmap, one could perform a first wave of planning. In this phase, only the vague and high-level requirements are known. All estimates and timelines used on that roadmap would be high level. When planning later for scrum sprints, developers can decompose the deliverables on a lower level. They can clarify the details and fulfill their sprint schedules accordingly with specific development details. Such an approach saves time during the quarter planning and allows for more room for changes in priorities and feature requirements during the quarter without requiring extra time for a deep replanning.

Important Considerations
Let’s talk about some important considerations for Rolling Wave Planning. First is a risk factor. Since the scope and details are very high level on the first wave and are more detailed on later waves, the uncertainty and deviation of the resulting schedule in early phases can be high. Thus, it is very appropriate to account for risk in those phases and use deviation formulas in early phases to make sure estimates are provided with reasonable room for a risk. To learn more on how to do it properly, check out the article “How to Account for Risks in Estimates.”
Another important aspect is communication. While having multiple waves of planning is beneficial, it’s important to synchronize those plans—whether it’s high- to low-level or the other way around—to keep them consistent between beneficiaries. Always update and communicate changes for high-level plans when performing low-level planning. Sometimes changes between the waves can be breaking, so make sure to communicate them clearly when needed by providing a separate email that explains changes or by informing stakeholders during another project sync meeting.
And last but not least: Use tools for automation. Rolling Wave Planning should simplify life, not complicate it. With manual calculations, though, it can be harder to achieve that result. Using automated tools, such as Deep Planner, allows us to adjust schedules and communicate the changes effectively in a matter of moments, whether it’s a high- or low-level schedule.
More Information about Planning and Helpful Insights
To subscribe to new content use links in About Us page. Also check out this blog for other articles related to Software Development planning!