Progressive Elaboration Techniques for Agile and Waterfall Teams
Teams in the traditional project management mode (or Waterfall) may be hampered by their structure from fully adopting Agile. Despite this constraint, they can still take advantage of many key Agile practices, just in different ways. Read on to find out how any project team can take advantage of the practice of progressive elaboration to move toward early and continuous delivery of value to the customer, satisfying one of the twelve Agile principles.
What is progressive elaboration?
Progressive elaboration is the practice of further refining requirements as the project progresses. Typically within an Agile project, requirements will be fully refined for the work in the current sprint. When the sprint closes and a new sprint opens, the requirements for the new sprint are then fully elaborated. The benefits of capturing requirements “just in time” include being able to get the latest requirements from conversation with the customer. This approach also avoids the wasted overhead of refining requirements early on just to have to change them later.
How does progressive elaboration work in Agile?
Figure 1 shows how progressive elaboration works in Agile:
The product backlog stores all requirements and features for the entire Agile project. The items assigned to the first release are subjected to more detailed planning, with the most detailed planning reserved for the items in the first sprint. While the developers work on the current sprint, the product owner should begin grooming the backlog and refining requirements for the upcoming sprint so the team can start planning and estimating seamlessly. The pyramid is commonly used to describe progressive elaboration because it shows that the unplanned items underneath make up the foundation of the product backlog, and as items are refined and developed, they become smaller and exit the workflow from the top.
As an example of how progressive elaboration works, consider a software project to build a new website. The current sprint includes navigation and basic site structure, the upcoming sprint includes content, and the upcoming release includes “nice-to-have” features such as a customer forum and a product gallery. While the team wraps up the current sprint, the product owner gets final feedback on content so that the team can start quickly on the content and finish it in the upcoming sprint. If any changes need to be made to navigation and structure, those also go into the upcoming sprint after the current sprint’s review finishes.
How can Waterfall teams take advantage of progressive elaboration?
Since Waterfall teams do not typically use sprints, taking full advantage of progressive elaboration may be difficult. What Waterfall teams can do instead is take advantage of rolling wave planning in a phased approach. They need to start with high-level planning for the entire project to establish their foundation, similarly to how the next release in the Agile project acts as the bottom of the project’s “pyramid.” From there, the team defines requirements for the first phase, and as the second phase approaches, requirements for the second phase are fully defined. For a Waterfall team, the value of this approach is less time spent in planning at the outset, since changes in plans may render much of this planning obsolete. The other value lies in more frequent customer feedback from phase to phase rather than at the end of the project, making it more likely that what the project team delivers matches what the customer wants.
Figure 2 shows a Gantt chart for a phased project approach using rolling wave planning:
Are there any pitfalls to watch for?
Progressive elaboration depends on the cone of uncertainty phenomenon, where estimates become sharper as the project proceeds toward its end. Future work does need to be scoped, but not at the granular level reserved for work in the current sprint or phase. While the future work can remain at a high level, teams should ensure that the estimates provide enough of a base for effective refinement when it’s time to visit those tasks down the road. For teams using progressive elaboration in a Waterfall environment, especially those where the customer is involved in eliciting requirements, establishing frequent communication and getting buy-in are both important.
Figure 3 shows the cone of uncertainty:
Using progressive elaboration allows you to keep the focus on highest priorities in any given project. For waterfall teams that don’t use sprints, rolling wave planning is a good way to get started with the practice. By keeping focus on the highest priorities, and encouraging customer involvement through creating more touchpoints, progressive elaboration is a powerful tool to gain and increase customer satisfaction for both Agile and Waterfall teams.
Want to learn more about Agile and how you can transform your organization to benefit from Agile? Please visit our Agile Transformation page to see how we can help you start or continue your Agile journey.