Divide and Conquer – How to split user stories
By Nikos RaptisBlog: nikosraptis.comE-mail: [email protected]
The INVEST modelGood user stories follow Bill Wake’s INVEST model
The PBI should be self-contained, in a way that there is no inherent dependency on another PBI.
PBIs, up until they are part of an iteration, can always be changed and rewritten.
A PBI must deliver value to the stakeholders.
You must always be able to estimate the size of a PBI.
PBIs should not be so big as to become impossible to plan/task/prioritize with a certain level of certainty.
The PBI or its related description must provide the necessary information to make test development possible.
Independent
Negotiable
Valuable
Estimable
Small
Testable
*PBI: Product Backlog Item
Patterns for splitting● Workflow Steps
● Business Rule Variations
● Major Effort
● Simple / Complex
● Variations in Data
● Data Entry Methods
● Defer Performance
● Operation (e.g CRUD)
● Break out a spike
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
Workflow Steps
As a content manager, I can publish a news story to the corporate website.
➢ I can publish a news story directly to the corporate website.➢ I can publish a news story with editor review.➢ I can publish a news story with legal review.
Initial User Story
Potential User Stories
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
Business Rule Variations
As a user, I can search for flights with flexible dates.
➢ as “n days between x and y.”➢ as “a weekend in December.”➢ as “± n days of x and y.”
Initial User Story
Potential User Stories
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
Major Effort
As a user, I can pay for my flight with VISA, MasterCard, Diners Club, or American Express.
➢ I can pay with one credit card type (of VISA, MC, DC, AMEX).➢ I can pay with all four credit card types (VISA, MC, DC, AMEX)
(given one card type already implemented).
Initial User Story
Potential User Stories
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
Simple/Complex
As a user, I can search for flights between two destinations.
➢ specifying a max number of stops.➢ including nearby airports.➢ using flexible dates.
Initial User Story
Potential User Stories
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
Variations in Data
As a content manager, I can create news articles.
➢ in English.➢ in Japanese.➢ in Arabic.
Initial User Story
Potential User Stories
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
Defer Performance
As a user, I can search for flights between two destinations.
➢ (slow—just get it done, show a “searching” animation).➢ (in under 5 seconds).
Initial User Story
Potential User Stories
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
Operations (e.g. CRUD)
As a user, I can manage my account.
➢ I can sign up for an account.➢ I can edit my account settings.➢ I can cancel my account.
Initial User Story
Potential User Stories
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
*CRUD: Create, Read, Update, Delete
Break Out a Spike
As a user, I can pay by credit card.
➢ Investigate credit card processing. (Time boxed)➢ Implement credit card processing.
Initial User Story
Potential User Stories
Source: Richard Lawrence, http://agileforall.com/patterns-for-splitting-user-stories
Tips
● Do not split an overly large user story by architectural layers.
● Try to satisfy the INVEST model● Keep delivering business value first in mind● Train POs to learn how to break US (scrum
master should know)
Source: Richard Lawrence, http://agileforall.com/new-story-splitting-resource