Table of Contents

How Do We Split a User Story?

Basic answer is “By end user value - ask yourself 'What kind of feedback do you expect from the customer at the Sprint Review.'”

User stories have a life-cycle. When we start into a release planning process, we might only have a “top 10” list of features required for this release. These are typically called Epics. Scrum Teams are told that they have to complete an entire user story before moving on to the next one in a Sprint and further that they should have between say 5-10 user stories per sprint. How do we get from the Epic to User Stories of this size? The answer is that we increasingly detail the requirements by splitting the Epic and subsequent User Stories into smaller and smaller User Stories.

Approach

The recommendation is that, where possible, you split large user stories into smaller ones but focus on still providing end user value even when you do the split. In other words as you divide stories up ensure there is some valuable functionality with each story. This contrasts with the approach a typical development organization would take when given a large amount of work to do where the instinct is to split the effort along architectural boundaries (data access layer, middle tier, client tier). The problem with the architectural approach is that:

In other words, resist dividing the story up along “technical” boundaries as this will result in iterations of development with nothing complete (and valuable) to the end user.

The question is then “how to I split a story if I don't use architectural boundaries?” One basic approach is to take the “Acceptance Criteria (or Conditions of Satisfaction)” for a User Story and use that to split the story up. So for example if the user story was “As a customer I want to pay with a credit card so I can get the item on sale”, the “Acceptance Criteria (or Conditions of Satisfaction)” might be “Accept Visa; Accept MasterCard; Accept American Express” and so on. If it was determined that the Story is too big to fit in a Sprint, then you could split the Story as “As a customer I want to pay with a Visa card so I can get the item on sale” with its own Acceptance Criteria (or Conditions of Satisfaction), and so on. Keep going until you have high priority items in the Product Backlog that are right-sized for a Sprint.

This type of thinking leads to the following general possibilities (using a different example):

To make sure you have something valuable ask yourself “Will the Customer be able to provide feedback on this functionality at the Sprint Review?” If you cannot figure out what kind of feedback the customer will provide, you probably have a user story that is more technical than from the business value that is being provided.

Want to Know More?