“We have 12,000 stories in our product backlog. How can we best groom it?”, I was recently asked. Trying to deal with a huge product backlog is more common than we would like to think. Many product backlogs are too long, detailed and complex. This is in stark contrast to what the product backlog should be: a simple artifact listing the outstanding work to bring the product to life. It’s time to put any over-weight product backlog on a diet making it lean and concise.
Lean thinking aims to create a smooth, leveled flow of work by removing waste, minimizing variation and avoiding overburden. Waste includes inventory and work-in-progress, defects, delays, and unused employee creativity. Examples of variation are frequent changes to the team and varying release cycles. Overburden occurs when people and resources cannot cope with the workload placed on them. If we want a lean product backlog, then it should contain as little waste and variation, and cause as little overburden as possible.
Waste consumes valuable resources and makes it harder to focus on what’s important. To remove waste in the product backlog, reduce the inventory the backlog holds, avoid overproduction and minimize defects, handoffs and wasted creativity, as I explain in more detail below. Reduce the inventory: Minimize the amount of detailed product backlog items and only include items in the backlog that are essential for creating a successful product. Ensure that just-enough high-priority items are detailed just in time for the next sprint planning meeting. As a consequence, product backlog items are progressively decomposed and refined – from sprint to sprint. Lower-priority items stay coarse grained and sketchy until their priority changes.
Avoid overproduction – providing more functionality than users and customer need. Focus on the minimum functionality necessary to bring the product to life, and only list truly valuable items in the backlog. Remove all other items from the product backlog. This keeps the product backlog concise and the Scrum team focused. If the item becomes important for a future version, it will re-emerge.
Minimize defects, handoffs and unused creativity by involving the team members and the stakeholders in grooming the product backlog. Jointly discovering and describing product backlog items avoids handing off requirements to the team. It ensures clarity of the requirements thereby reducing defects; and it leverages the creativity and knowledge of the team members and stakeholders. Jointly prioritising the product backlog ensures that technical risks and dependencies are accounted for. Problems consequently surface early, which allows us to prevent defects at a later stage of the project.
Limit Undesirable Variation
Not all variation in the product backlog is wrong. The size of the product backlog items should vary according to their priority, for instance. But unnecessary variation, also called unevenness, prevents a smooth flow of work. Try the following to minimize variation in the product backlog: Standardize the techniques for describing product backlog items. Choose user stories to capture functional requirements and operational qualities such as performance and robustness requirements, for instance. Agree on a common way to describe usability requirements such as sketches, wire-frames or mock-ups.
Use a sprint goal. The sprint goal summarizes the desired outcome of the sprint, and moves the Scrum team a step closer toward the release of the product. A shared sprint goal ensures that everyone is working toward a common goal. It minimizes variation by limiting the type of requirements worked on in a given sprint, for instance, by choosing items from the same theme. This facilitates close teamwork and can increase velocity.
Ensure that the high-priority items have roughly the same size and favor small items – items that can be transformed into a part of the product increment within a few days. This reduces variation, improves the progress tracking within the sprint, and prevents defects by allowing the product owner to provide just-in-time feedback on the work results. Note that this approach works best when the team uses agile development practices including storydriven development.
Create a steady cadence by using fixed-length releases. Timebox your projects: Identify the window of opportunity based on the product vision and the product backlog, and freeze the release date. Take Salesforce.com, a leading provider of on-demand customer relationship management services. The company releases a product update every four months. As a consequence, Salesforce.com experienced an amazing increase in the number of features delivered while drastically reducing its lead-time for new functionality. Note that a fast, steady cadence supports other measures including minimizing the inventory in the product backlog.
As long as people work crazy hours, and as long as projects and teams are overwhelmed by the amount of work, the removal of waste and variation is ineffective. Waste and variation are likely to creep back in unless we limit the amount of work to the capacity and capabilities of the organization. Let’s assume we try to eliminate defects but the project still suffers from overburden. Chances are that quality problems reappear since the project members still feel pressured and are overworked. In fact, overburden is a major source of waste including work-in-progress, waiting and delays, task-switching, and defects.
To eliminate overburden, let the product backlog evolve based on customer and user feedback. View changing requirements as a competitive advantage and leverage the feedback together with the project progress to decide which functionality is implemented. Encourage the team to pull only as many items into the sprint as they can transform into a product increment in a sustainable way. Ensure that the high-priority items are ready: They should be clear, testable and feasible. This avoids that the team overlooks tasks and pulls too much work into the sprint. And last but not least, make high-priority items small. This allows the team to optimize its work utilization. It also avoids the danger of missing tasks – which is a common issue with large stories.
Keep your backlog simple, concise and lean. Focus on the items that are essential for bringing the product to life. Be courageous and ruthlessly weed out all other items. This will make your product backlog lean and increase the likelihood to develop a successful product.