about services publications events blog
Pichler logo

All Things Product Owner

Posts Tagged ‘product backlog’

Decomposing User Stories

Aug
18

Grooming the product backlog entails decomposing larger product backlog items until they are small enough to fit into a sprint. This process, also known as progressive requirements decomposition, might last more than one sprint. Although detailing product backlog items should be delayed until the last responsible moment, you might have to start decomposing a story a few sprints in advance before it can be implemented, particularly if the story is large or complex. This allows gathering the necessary feedback from customers, users, and other stakeholders before detailing the item. Let’s look at how user stories can be decomposed progressively.

Decomposing User Stories

As illustrated in the figure above, the Scrum team originally placed the epic “Compose email” in the product backlog. As it is too big and vague to be delivered in a sprint, the epic is broken down into several coarse-grained user stories. The story “State recipient” is then further decomposed into two fine-grained user stories. These are now small enough to fit in a sprint. The epic is an example of a compound story, a user story that has more than one goal. To decompose such a story, we introduce a separate story for each goal. “Compose email” is therefore broken into “State subject,” “State recipient,” and “Set importance.”

There are other user stories that need to be decomposed, including complex stories and stories with monster criteria. A complex user story is a story that is too big to be delivered in one sprint because of its inherent uncertainty or because it covers too much functionality. If it is too uncertain, we introduce one or more items into the product backlog that explore that uncertainty and generate the relevant knowledge: for instance, “Investigate JavaServer Faces as the user interface technology.” If the story describes too much functionality, we spilt it into several stories to allow an incremental delivery of the functionality. This technique is also called slicing the cake. A story that says, for instance, “Validate the user” could be decomposed into “Validate the user name” and “Validate the password.”

Stories sometimes look fine until we consider the acceptance criteria. If there are too many—more than about ten—or if requirements hide in the criteria, we need to rework and decompose the story. Here is an example: “As a user, I want to delete a text message.” The acceptance criteria state, “I can select any text message. I can remove the message text. I can save the modified message.” Not only is the second condition redundant, but the other two introduce new requirements rather than specifying acceptance criteria. This story should be split into three: a story about deleting text messages, a story about editing text messages, and another story about saving the modified messages.

Find out more about working with the product backlog effectively by reading my book Agile Product Management with Scrum or by attending my product owner course. User stories are comprehensively described in Mike Cohn’s excellent book User Stories Applied.

spacing rule

The Lean Product Backlog – Limit Variation and Prevent Overburden

Jul
23

Many product backlogs are too long, detailed and complex. This is in stark contrast to what the product backlog should be: a simple artefact 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. This blog posts continues the discussion of making the backlog lean by limiting unnecessary variation and preventing overburden.

Limit Unnecessary Variation

Variation, also called unevenness, prevents a smooth flow of work. While not all variation in the product backlog is bad — the size of its items should vary depending on their priority to minimise waste, for instance — reducing unnecessary variation helps create a lean backlog and a lean workflow:

Standardise 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 minimises 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 favour 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 story-driven 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 Salesfore.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 minimising the inventory in the product backlog.

Prevent Overburden

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 optimise its work utilisation. It also avoids the danger of missing tasks – which is a common issue with large stories.

Find out more

Find out more about working with the product backlog effectively in my book Agile Product Management with Scrum. Attend my lean training course to fully understand how product owners can benefit from applying lean techniques.

spacing rule