SlideShare a Scribd company logo
1 of 25
21 Story Splitting Patterns
Kent McDonald
kentjmcdonald@gmail.com
Why Split User Stories?
Submit a
session
proposal
Split Conditions
What This Is
If a story has multiple items listed
in “what” make each a separate
story
When to Use it
Words such as “and” or “or”
appear
Helpful questions
Are all of these conditions
necessary (right now)?
As a Customer, I
want to create an
order and pay for
the order using a
credit card so that
I can get something
to eat
Workflow
What This Is
Identify the specific steps in a workflow.
Implement the workflow in stages,
creating multiple stories for the
incremental implementation
When to Use it
The initial story describes a workflow or
process.
Helpful questions
What steps does a user perform?
Are all steps necessary (right now)?
Can steps be simplified (for now)?
As a Customer, I
want to create an
order so that I can
get something to
eat
Use Case Scenarios
What This Is
Similar to the Workflow pattern, one
story represents the happy path,
different stories for alternate paths.
When to Use it
The initial story refers to an interaction
described by a use case
Helpful questions
What does the happy/alternate flow
look like?
Are all the alternate flows necessary
(right now)?
Can the alternate flows be simplified
(right now)?
As a Customer, I
want to create an
order so that I can
get something to
eat
Operations
What This Is
Splitting a story based on the different
operations done on an entity (Create,
Read, Update, Delete).
When to Use it
The story is about managing or
configuring something
Helpful questions
What operations does the story entail?
Are all the operations necessary (right
now)?
As a restaurant
owner I want to
manage my
restaurant profile
so that people can
order from my
restaurant
Zero > One > Many
What This Is
Splitting a story that deals with multiple
instances of an entity into stories that
deal with one instance, and then
multiple instances.
When to Use it
You are working with an entity where
multiple instances are allowed.
Helpful questions
Do we need to be able to handle
multiple instances, or is one instance
sufficient?
As a restaurant
owner, I want to
view a customer’s
order.
Core & Enhance
What This Is
Splitting a story to deal with the simple
core conditions and then enhancing the
functionality with additional user
stories.
When to Use it
When the story has a simple core that
provides most of the learning.
Helpful questions
What’s the simplest version of this?
What data types are supported?
What parameters are relevant?
As a customer I
want to see my past
orders so that I can
see what I have
eaten before.
Major Effort
What This Is
Splitting a story in a way that requires
substantial effort for the first story and
less effort for all subsequent stories.
When to Use it
When you apply the most obvious split,
any story you do first is the most
difficult.
Helpful questions
Can we create the necessary
infrastructure and deliver value at the
same time?
Does it make a difference which option
we do first?
As a customer I can
pay for my order
with Amex, MC,
Visa, or DC so that
I don’t have to deal
with cash..
As a customer
I want to
create an
order with an
item not in
stock
Acceptance Criteria
What This Is
Split a user story into multiple stories to
handle different scenarios in the
Acceptance Criteria.
When to Use it
When the team identifies multiple
scenarios for a story, or accurate, but not
entirely relevant acceptance criteria
identified.
Helpful questions
What tests are used to verify this story?
What acceptance criteria apply?
What scenarios are relevant?
Are all test scenarios necessary (right now?)
As a customer I
want to create an
order so that I can
have something to
eat.
As a customer
I want to
create an
order with an
in stock item.
As a customer
I want to view
the menu in
Swahili
Variations in Data
What This Is
The story does the same thing to different
types of data. Create a story for each
option.
When to Use it
When a solution has to support multiple
options.
Helpful questions
Are these options necessary right now?
What is the most common option we need
to care for right away?
As a customer I
want to view the
menu in my native
language so I can
decide what I want
to eat.
As a customer
I want to view
pictures of
dish.
Data Boundaries
What This Is
Splitting a story dealing with several
attributes of the same entity.
Support a few key elements first and
introduce remaining data elements later via
additional stories.
When to Use it
When a story is dealing with several
different pieces of data.
Helpful questions
What are the essential data elements we
need to have?
What data elements are not necessary
right now?
As a customer I
want to view menu
item information so
I can decide what I
want to eat.
Interface Variations
What This Is
Splitting a story dealing with a complex
interface with addition stories to
incrementally add in complexity.
When to Use it
When the user story deals with a complex
user interface where a simpler one will
work in the meantime
Helpful questions
What is the simplest user interface we can
use?
As a customer I can
view the menu so I
can select what I
want to eat.
Platform Options
What This Is
Split a story adding a new user interface by
the various platforms that are applicable.
When to Use it
When adding a new user interface that may
be accessed by multiple different platforms.
Helpful questions
Which platforms are supported?
Are all platforms required (right now)?
Are some platforms more difficult to
support than others?
As a customer I
want to create an
order so that I can
get something to
eat.
Business Rules
What This Is
Split a user story so that complex business
rules are handled by separate business
rules.
A special case of this is deferring input
validation to a later story.
When to Use it
When a story has a variety of business
rules, often identified by a large number of
examples.
Helpful questions
What rules apply to this story?
Are all of those rules necessary (right now)?
Can simpler rules suffice (for now)?
As a customer I can
use a credit card to
pay for my order.
Role
What This Is
Split a story so that the functionality is
implemented at different times for different
roles.
When to Use it
When a story impacts multiple roles and
the impact is different for each role.
Helpful questions
What roles are involved in this story?
Are any roles necessary now?
As a customer I
want to create an
order so I can get
something to eat.
Defer System Qualities
What This Is
Split the story to deliver the necessary
functionality first, then add additional
stories to improve performance, scalability,
usability or precision
When to Use it
When the base functionality does not exist
at all, initial implementation is not that
difficult, the team can learn a lot from it,
and the hard work is in making it better.
Helpful questions
Is it necessary for this to have optimal
performance (right now)?
As a customer I
want to know that
the restaurant
received my order
so that I’m sure I’ll
get some food.
Spikes
What This Is
Split the story to allow for some research
and investigation on functionality before
implementing it.
When to Use it
When the team finds they are uncertain
about the implementation of a story and
they need to do some research.
Helpful questions
What are the 1 – 3 questions you have
about the story?
As a customer I
want to see the
menu in the
language of my
choice so that I can
pick something I
want.
Low Fidelity/High Fidelity
What This Is
Split the story into a gradual increase of
quality.
When to Use it
When getting to the optimal level of quality
or usability is too expensive to deliver a
solution immediately.
Helpful questions
What is good enough for this
functionality?
As a customer I
would like a
recommendation of
what food to order
so that I can know
I’m getting a good
dish.
Transient then Persistent
What This Is
Split stories based on actions to pass data
along and those necessary to save data.
When to Use it
When the story deals with functionality
that includes storing data, but does not
require storing data.
Helpful questions
Do we have to store this data (right now)?
As a customer I
want to use a credit
card to pay for my
order so that I
don’t have to carry
cash.
Dummy then Dynamic Data
What This Is
Split stories to first use static data and then
add stories to make the data dynamic.
When to Use it
When the story covers parameters where
the values differ depending on conditions.
Helpful questions
Does the data need to be dynamic (right
now)?
As a customer I
want to search for
menu items.
Manual then Automated
What This Is
Split stories that utilize an existing manual
process. Implement the functionality that
does not exist.
When to Use it
When functionality you are developing
interacts with an existing manual process,
develop the functionality but in the short
term, do not automate the manual process.
Helpful questions
Is it necessary to automate the manual
process right now?
As a customer I
want to use multiple
credit cards to pay
for my order.
*Use manual process to
deal with multiple cards
Defer Error Handling or Logging
What This Is
Split story so that you focus on functionality
first, then go back and provide functionality
to log errors and handle them.
When to Use it
When you need to gain feedback on
functionality quickly to determine whether
to keep it.
Helpful questions
Is it necessary to deal with exceptions for
this functionality (right now)?
As a restaurant
owner I want to
authorize the
customer’s credit
card payment..
Which Pattern to Use
Since there are multiple patterns that can be used
to split the same story, here are three rules of
thumb to guide your selection:
1. Choose the split that lets you deprioritize or
throw away a story.
2. Choose the split that gets you more equally
sized small stories.
3. Chose the split that eliminates or at least
reduces dependencies
http://www.agileforall.com/2009/10/patterns-for-
splitting-user-stories/
Additional References
• Splitting User Stories Presentation http://www.slideshare.net/arsenalist/splitting-
userstories
• Splitting User Stories Cheat sheet
https://twitter.com/chrisverwijs/status/335109871802384385
• Breaking Down Larger Stories
http://agileinaflash.blogspot.com/2009/02/breaking-down-larger-stories.html
• Ways to Split User Stories: http://lassekoskela.com/thoughts/7/ways-to-split-user-
stories/
• User Story Hamburger technique http://gojko.net/2012/01/23/splitting-user-
stories-the-hamburger-method/
• Features to User Stories http://idiacomputing.com/pub/UserStories.pdf
• Patterns for Splitting User Stories http://www.agileforall.com/2009/10/patterns-
for-splitting-user-stories/
• Twenty Ways to Split Stories http://xp123.com/articles/twenty-ways-to-split-
stories/

More Related Content

What's hot

Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User Stories
Janeve George
 
Mke agile 032014 Slicing the cake: User Story Decomposition
Mke agile 032014   Slicing the cake: User Story DecompositionMke agile 032014   Slicing the cake: User Story Decomposition
Mke agile 032014 Slicing the cake: User Story Decomposition
Dave Neuman
 

What's hot (20)

Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories
 
User story and splitting workshop
User story and splitting workshopUser story and splitting workshop
User story and splitting workshop
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptx
 
Cheat Sheet: 8 ways to split your user stories
Cheat Sheet:  8 ways to split your user storiesCheat Sheet:  8 ways to split your user stories
Cheat Sheet: 8 ways to split your user stories
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story Workshop
 
User story splitting techniques
User story splitting techniquesUser story splitting techniques
User story splitting techniques
 
Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User Stories
 
User Stories explained
User Stories explainedUser Stories explained
User Stories explained
 
User Stories Fundamentals
User Stories FundamentalsUser Stories Fundamentals
User Stories Fundamentals
 
User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
 
How to write good user stories
How to write good user storiesHow to write good user stories
How to write good user stories
 
User Story Mapping
User Story MappingUser Story Mapping
User Story Mapping
 
Mke agile 032014 Slicing the cake: User Story Decomposition
Mke agile 032014   Slicing the cake: User Story DecompositionMke agile 032014   Slicing the cake: User Story Decomposition
Mke agile 032014 Slicing the cake: User Story Decomposition
 
Story of user story
Story of user storyStory of user story
Story of user story
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting Patterns
 
User Stories
User StoriesUser Stories
User Stories
 
Vertical Story Slicing Takes the Cake!
Vertical Story Slicing Takes the Cake!Vertical Story Slicing Takes the Cake!
Vertical Story Slicing Takes the Cake!
 
User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories  User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories
 
User Story Mapping in Practice
User Story Mapping in PracticeUser Story Mapping in Practice
User Story Mapping in Practice
 
User Story
User StoryUser Story
User Story
 

Viewers also liked

Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Naresh Jain
 
GAFANOMICS Season 2: 4 superpowers to outperform in the Network Economy
GAFANOMICS Season 2: 4 superpowers to outperform in the Network EconomyGAFANOMICS Season 2: 4 superpowers to outperform in the Network Economy
GAFANOMICS Season 2: 4 superpowers to outperform in the Network Economy
Fabernovel
 

Viewers also liked (20)

Product Strategy and Product Success
Product Strategy and Product SuccessProduct Strategy and Product Success
Product Strategy and Product Success
 
Analysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesAnalysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User Stories
 
Agile Team Working Agreements
Agile Team Working AgreementsAgile Team Working Agreements
Agile Team Working Agreements
 
The Product Canvas Tutorial V1.0
The Product Canvas Tutorial V1.0The Product Canvas Tutorial V1.0
The Product Canvas Tutorial V1.0
 
What it Really Means to Be Agile
What it Really Means to Be AgileWhat it Really Means to Be Agile
What it Really Means to Be Agile
 
Agile Leadership: Accelerating Business Agility - Context
Agile Leadership: Accelerating Business Agility - ContextAgile Leadership: Accelerating Business Agility - Context
Agile Leadership: Accelerating Business Agility - Context
 
How to find the real need with socratic questioning
How to find the real need with socratic questioningHow to find the real need with socratic questioning
How to find the real need with socratic questioning
 
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
 
Become a Great Product Manager
Become a Great Product ManagerBecome a Great Product Manager
Become a Great Product Manager
 
GAFANOMICS Season 2: 4 superpowers to outperform in the Network Economy
GAFANOMICS Season 2: 4 superpowers to outperform in the Network EconomyGAFANOMICS Season 2: 4 superpowers to outperform in the Network Economy
GAFANOMICS Season 2: 4 superpowers to outperform in the Network Economy
 
Pixar's 22 Rules to Phenomenal Storytelling
Pixar's 22 Rules to Phenomenal StorytellingPixar's 22 Rules to Phenomenal Storytelling
Pixar's 22 Rules to Phenomenal Storytelling
 
The Be-All, End-All List of Small Business Tax Deductions
The Be-All, End-All List of Small Business Tax DeductionsThe Be-All, End-All List of Small Business Tax Deductions
The Be-All, End-All List of Small Business Tax Deductions
 
25 Discovery Call Questions
25 Discovery Call Questions25 Discovery Call Questions
25 Discovery Call Questions
 
Class 1: Email Marketing Certification course: Email Marketing and Your Business
Class 1: Email Marketing Certification course: Email Marketing and Your BusinessClass 1: Email Marketing Certification course: Email Marketing and Your Business
Class 1: Email Marketing Certification course: Email Marketing and Your Business
 
Behind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot TokyoBehind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot Tokyo
 
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
 
What is Inbound Recruiting?
What is Inbound Recruiting?What is Inbound Recruiting?
What is Inbound Recruiting?
 
3 Proven Sales Email Templates Used by Successful Companies
3 Proven Sales Email Templates Used by Successful Companies3 Proven Sales Email Templates Used by Successful Companies
3 Proven Sales Email Templates Used by Successful Companies
 
Add the Women Back: Wikipedia Edit-a-Thon
Add the Women Back: Wikipedia Edit-a-ThonAdd the Women Back: Wikipedia Edit-a-Thon
Add the Women Back: Wikipedia Edit-a-Thon
 
Splitting user stories
Splitting user storiesSplitting user stories
Splitting user stories
 

Similar to 21 Story Splitting Patterns

I tried to do this assignment but I didn’t pass – here is the prof
I tried to do this assignment but I didn’t pass – here is the profI tried to do this assignment but I didn’t pass – here is the prof
I tried to do this assignment but I didn’t pass – here is the prof
NarcisaBrandenburg70
 
9 afi1 soler pitch presentation template
9 afi1 soler  pitch presentation template9 afi1 soler  pitch presentation template
9 afi1 soler pitch presentation template
cardinalwisemanICT
 
9 afi1 soler pitch presentation template
9 afi1 soler  pitch presentation template9 afi1 soler  pitch presentation template
9 afi1 soler pitch presentation template
CardinalwisemanICT2
 
7 Points of Satisfaction
7 Points of Satisfaction7 Points of Satisfaction
7 Points of Satisfaction
Tincup & Co.
 

Similar to 21 Story Splitting Patterns (20)

Jason-Phillip Park on Creating User Stories that get your Developers Excited
Jason-Phillip Park on Creating User Stories that get your Developers ExcitedJason-Phillip Park on Creating User Stories that get your Developers Excited
Jason-Phillip Park on Creating User Stories that get your Developers Excited
 
User Stories Training
User Stories TrainingUser Stories Training
User Stories Training
 
I tried to do this assignment but I didn’t pass – here is the prof
I tried to do this assignment but I didn’t pass – here is the profI tried to do this assignment but I didn’t pass – here is the prof
I tried to do this assignment but I didn’t pass – here is the prof
 
User story tune up
User story tune upUser story tune up
User story tune up
 
Please solve the right problem!
Please solve the right problem!Please solve the right problem!
Please solve the right problem!
 
Please solve the right problem final
Please solve the right problem finalPlease solve the right problem final
Please solve the right problem final
 
Agile + Lean Product Management
Agile + Lean Product ManagementAgile + Lean Product Management
Agile + Lean Product Management
 
How to Write Great User Stories Today.pptx
How to Write Great User Stories Today.pptxHow to Write Great User Stories Today.pptx
How to Write Great User Stories Today.pptx
 
9 afi1 soler pitch presentation template
9 afi1 soler  pitch presentation template9 afi1 soler  pitch presentation template
9 afi1 soler pitch presentation template
 
9 afi1 soler pitch presentation template
9 afi1 soler  pitch presentation template9 afi1 soler  pitch presentation template
9 afi1 soler pitch presentation template
 
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelazXp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
 
7 Points of Satisfaction
7 Points of Satisfaction7 Points of Satisfaction
7 Points of Satisfaction
 
How to Define Tech Product Pricing Strategy by Salesforce Sr. PM
How to Define Tech Product Pricing Strategy by Salesforce Sr. PMHow to Define Tech Product Pricing Strategy by Salesforce Sr. PM
How to Define Tech Product Pricing Strategy by Salesforce Sr. PM
 
Rapid Product Development
Rapid Product DevelopmentRapid Product Development
Rapid Product Development
 
27 Revenue Model Options B2B (curated by @arnevbalen - Board of Innovation)
27 Revenue Model Options B2B (curated by @arnevbalen - Board of Innovation)27 Revenue Model Options B2B (curated by @arnevbalen - Board of Innovation)
27 Revenue Model Options B2B (curated by @arnevbalen - Board of Innovation)
 
Diy user engagement, white paper
Diy user engagement, white paperDiy user engagement, white paper
Diy user engagement, white paper
 
Advanced Business Model Design - Pirate Summit 2013
Advanced Business Model Design - Pirate Summit 2013Advanced Business Model Design - Pirate Summit 2013
Advanced Business Model Design - Pirate Summit 2013
 
Content prioritization: A method to inform what to tackle first so the user +...
Content prioritization: A method to inform what to tackle first so the user +...Content prioritization: A method to inform what to tackle first so the user +...
Content prioritization: A method to inform what to tackle first so the user +...
 
Premier EPOS Sales Scripts
Premier EPOS Sales ScriptsPremier EPOS Sales Scripts
Premier EPOS Sales Scripts
 
T&B_fin
T&B_finT&B_fin
T&B_fin
 

More from Kent McDonald

How to discover the right product to solve the right problem
How to discover the right product to solve the right problemHow to discover the right product to solve the right problem
How to discover the right product to solve the right problem
Kent McDonald
 
Stakeholders are problematic
Stakeholders are problematicStakeholders are problematic
Stakeholders are problematic
Kent McDonald
 

More from Kent McDonald (20)

Moving from Business Analyst to Product Owner to Product Manager
Moving from Business Analyst to Product Owner to Product ManagerMoving from Business Analyst to Product Owner to Product Manager
Moving from Business Analyst to Product Owner to Product Manager
 
How to discover the right product to solve the right problem
How to discover the right product to solve the right problemHow to discover the right product to solve the right problem
How to discover the right product to solve the right problem
 
How to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic QuestioningHow to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic Questioning
 
Stakeholders are problematic
Stakeholders are problematicStakeholders are problematic
Stakeholders are problematic
 
How to build shared understanding with example mapping
How to build shared understanding with example mappingHow to build shared understanding with example mapping
How to build shared understanding with example mapping
 
How to build shared understanding with example mapping
How to build shared understanding with example mappingHow to build shared understanding with example mapping
How to build shared understanding with example mapping
 
Examining the Product Owner Role
Examining the Product Owner RoleExamining the Product Owner Role
Examining the Product Owner Role
 
How to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic QuestioningHow to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic Questioning
 
Examining the Product Owner Role
Examining the Product Owner RoleExamining the Product Owner Role
Examining the Product Owner Role
 
Tis better to be effective than efficient
Tis better to be effective than efficientTis better to be effective than efficient
Tis better to be effective than efficient
 
The 3D's of Scaling (Agile)
The 3D's of Scaling (Agile)The 3D's of Scaling (Agile)
The 3D's of Scaling (Agile)
 
What do Scrum Masters Really Do? And do we need them?
What do Scrum Masters Really Do?  And do we need them?What do Scrum Masters Really Do?  And do we need them?
What do Scrum Masters Really Do? And do we need them?
 
Collaborative Modeling In A Nutshell
Collaborative Modeling In A NutshellCollaborative Modeling In A Nutshell
Collaborative Modeling In A Nutshell
 
Analysis With an Agile Mindset Workshop
Analysis With an Agile Mindset WorkshopAnalysis With an Agile Mindset Workshop
Analysis With an Agile Mindset Workshop
 
Lessons Learned in Product Ownership
Lessons Learned in Product OwnershipLessons Learned in Product Ownership
Lessons Learned in Product Ownership
 
Positive Politics
Positive PoliticsPositive Politics
Positive Politics
 
Anyone Can Write User Stories. It's the (Shared) Understanding That's Important
Anyone Can Write User Stories. It's the (Shared) Understanding That's ImportantAnyone Can Write User Stories. It's the (Shared) Understanding That's Important
Anyone Can Write User Stories. It's the (Shared) Understanding That's Important
 
Decision Making Techniques for Not for Profits
Decision Making Techniques for Not for ProfitsDecision Making Techniques for Not for Profits
Decision Making Techniques for Not for Profits
 
Estimating in Software Development: No Silver Bullets Allowed
Estimating in Software Development: No Silver Bullets AllowedEstimating in Software Development: No Silver Bullets Allowed
Estimating in Software Development: No Silver Bullets Allowed
 
Is It Worth It? Using A Business Value Model To Guide Decisions
Is It Worth It?  Using A Business Value Model To Guide DecisionsIs It Worth It?  Using A Business Value Model To Guide Decisions
Is It Worth It? Using A Business Value Model To Guide Decisions
 

Recently uploaded

Recently uploaded (20)

Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insights
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 

21 Story Splitting Patterns

  • 1. 21 Story Splitting Patterns Kent McDonald kentjmcdonald@gmail.com
  • 2. Why Split User Stories? Submit a session proposal
  • 3. Split Conditions What This Is If a story has multiple items listed in “what” make each a separate story When to Use it Words such as “and” or “or” appear Helpful questions Are all of these conditions necessary (right now)? As a Customer, I want to create an order and pay for the order using a credit card so that I can get something to eat
  • 4. Workflow What This Is Identify the specific steps in a workflow. Implement the workflow in stages, creating multiple stories for the incremental implementation When to Use it The initial story describes a workflow or process. Helpful questions What steps does a user perform? Are all steps necessary (right now)? Can steps be simplified (for now)? As a Customer, I want to create an order so that I can get something to eat
  • 5. Use Case Scenarios What This Is Similar to the Workflow pattern, one story represents the happy path, different stories for alternate paths. When to Use it The initial story refers to an interaction described by a use case Helpful questions What does the happy/alternate flow look like? Are all the alternate flows necessary (right now)? Can the alternate flows be simplified (right now)? As a Customer, I want to create an order so that I can get something to eat
  • 6. Operations What This Is Splitting a story based on the different operations done on an entity (Create, Read, Update, Delete). When to Use it The story is about managing or configuring something Helpful questions What operations does the story entail? Are all the operations necessary (right now)? As a restaurant owner I want to manage my restaurant profile so that people can order from my restaurant
  • 7. Zero > One > Many What This Is Splitting a story that deals with multiple instances of an entity into stories that deal with one instance, and then multiple instances. When to Use it You are working with an entity where multiple instances are allowed. Helpful questions Do we need to be able to handle multiple instances, or is one instance sufficient? As a restaurant owner, I want to view a customer’s order.
  • 8. Core & Enhance What This Is Splitting a story to deal with the simple core conditions and then enhancing the functionality with additional user stories. When to Use it When the story has a simple core that provides most of the learning. Helpful questions What’s the simplest version of this? What data types are supported? What parameters are relevant? As a customer I want to see my past orders so that I can see what I have eaten before.
  • 9. Major Effort What This Is Splitting a story in a way that requires substantial effort for the first story and less effort for all subsequent stories. When to Use it When you apply the most obvious split, any story you do first is the most difficult. Helpful questions Can we create the necessary infrastructure and deliver value at the same time? Does it make a difference which option we do first? As a customer I can pay for my order with Amex, MC, Visa, or DC so that I don’t have to deal with cash..
  • 10. As a customer I want to create an order with an item not in stock Acceptance Criteria What This Is Split a user story into multiple stories to handle different scenarios in the Acceptance Criteria. When to Use it When the team identifies multiple scenarios for a story, or accurate, but not entirely relevant acceptance criteria identified. Helpful questions What tests are used to verify this story? What acceptance criteria apply? What scenarios are relevant? Are all test scenarios necessary (right now?) As a customer I want to create an order so that I can have something to eat. As a customer I want to create an order with an in stock item.
  • 11. As a customer I want to view the menu in Swahili Variations in Data What This Is The story does the same thing to different types of data. Create a story for each option. When to Use it When a solution has to support multiple options. Helpful questions Are these options necessary right now? What is the most common option we need to care for right away? As a customer I want to view the menu in my native language so I can decide what I want to eat.
  • 12. As a customer I want to view pictures of dish. Data Boundaries What This Is Splitting a story dealing with several attributes of the same entity. Support a few key elements first and introduce remaining data elements later via additional stories. When to Use it When a story is dealing with several different pieces of data. Helpful questions What are the essential data elements we need to have? What data elements are not necessary right now? As a customer I want to view menu item information so I can decide what I want to eat.
  • 13. Interface Variations What This Is Splitting a story dealing with a complex interface with addition stories to incrementally add in complexity. When to Use it When the user story deals with a complex user interface where a simpler one will work in the meantime Helpful questions What is the simplest user interface we can use? As a customer I can view the menu so I can select what I want to eat.
  • 14. Platform Options What This Is Split a story adding a new user interface by the various platforms that are applicable. When to Use it When adding a new user interface that may be accessed by multiple different platforms. Helpful questions Which platforms are supported? Are all platforms required (right now)? Are some platforms more difficult to support than others? As a customer I want to create an order so that I can get something to eat.
  • 15. Business Rules What This Is Split a user story so that complex business rules are handled by separate business rules. A special case of this is deferring input validation to a later story. When to Use it When a story has a variety of business rules, often identified by a large number of examples. Helpful questions What rules apply to this story? Are all of those rules necessary (right now)? Can simpler rules suffice (for now)? As a customer I can use a credit card to pay for my order.
  • 16. Role What This Is Split a story so that the functionality is implemented at different times for different roles. When to Use it When a story impacts multiple roles and the impact is different for each role. Helpful questions What roles are involved in this story? Are any roles necessary now? As a customer I want to create an order so I can get something to eat.
  • 17. Defer System Qualities What This Is Split the story to deliver the necessary functionality first, then add additional stories to improve performance, scalability, usability or precision When to Use it When the base functionality does not exist at all, initial implementation is not that difficult, the team can learn a lot from it, and the hard work is in making it better. Helpful questions Is it necessary for this to have optimal performance (right now)? As a customer I want to know that the restaurant received my order so that I’m sure I’ll get some food.
  • 18. Spikes What This Is Split the story to allow for some research and investigation on functionality before implementing it. When to Use it When the team finds they are uncertain about the implementation of a story and they need to do some research. Helpful questions What are the 1 – 3 questions you have about the story? As a customer I want to see the menu in the language of my choice so that I can pick something I want.
  • 19. Low Fidelity/High Fidelity What This Is Split the story into a gradual increase of quality. When to Use it When getting to the optimal level of quality or usability is too expensive to deliver a solution immediately. Helpful questions What is good enough for this functionality? As a customer I would like a recommendation of what food to order so that I can know I’m getting a good dish.
  • 20. Transient then Persistent What This Is Split stories based on actions to pass data along and those necessary to save data. When to Use it When the story deals with functionality that includes storing data, but does not require storing data. Helpful questions Do we have to store this data (right now)? As a customer I want to use a credit card to pay for my order so that I don’t have to carry cash.
  • 21. Dummy then Dynamic Data What This Is Split stories to first use static data and then add stories to make the data dynamic. When to Use it When the story covers parameters where the values differ depending on conditions. Helpful questions Does the data need to be dynamic (right now)? As a customer I want to search for menu items.
  • 22. Manual then Automated What This Is Split stories that utilize an existing manual process. Implement the functionality that does not exist. When to Use it When functionality you are developing interacts with an existing manual process, develop the functionality but in the short term, do not automate the manual process. Helpful questions Is it necessary to automate the manual process right now? As a customer I want to use multiple credit cards to pay for my order. *Use manual process to deal with multiple cards
  • 23. Defer Error Handling or Logging What This Is Split story so that you focus on functionality first, then go back and provide functionality to log errors and handle them. When to Use it When you need to gain feedback on functionality quickly to determine whether to keep it. Helpful questions Is it necessary to deal with exceptions for this functionality (right now)? As a restaurant owner I want to authorize the customer’s credit card payment..
  • 24. Which Pattern to Use Since there are multiple patterns that can be used to split the same story, here are three rules of thumb to guide your selection: 1. Choose the split that lets you deprioritize or throw away a story. 2. Choose the split that gets you more equally sized small stories. 3. Chose the split that eliminates or at least reduces dependencies http://www.agileforall.com/2009/10/patterns-for- splitting-user-stories/
  • 25. Additional References • Splitting User Stories Presentation http://www.slideshare.net/arsenalist/splitting- userstories • Splitting User Stories Cheat sheet https://twitter.com/chrisverwijs/status/335109871802384385 • Breaking Down Larger Stories http://agileinaflash.blogspot.com/2009/02/breaking-down-larger-stories.html • Ways to Split User Stories: http://lassekoskela.com/thoughts/7/ways-to-split-user- stories/ • User Story Hamburger technique http://gojko.net/2012/01/23/splitting-user- stories-the-hamburger-method/ • Features to User Stories http://idiacomputing.com/pub/UserStories.pdf • Patterns for Splitting User Stories http://www.agileforall.com/2009/10/patterns- for-splitting-user-stories/ • Twenty Ways to Split Stories http://xp123.com/articles/twenty-ways-to-split- stories/

Editor's Notes

  1. Splitting user stories is an analysis technique that produces small vertically sliced user stories. Smaller user stories are easier to understand The smaller stories are less complicated, so there is less chance for misunderstanding of what is/is not included in the story. May find some parts of big story are not needed If a team splits a story appropriately, the team may find that some of the smaller stories are not essential to delivering the outcome expected from the larger story. For example, if a story was split along different scenarios, some scenarios may not be as relevant, or even happen. Team can save time by not realizing those scenarios. Smaller stories provide a faster feedback loop Smaller stories can be delivered sooner, which means the team can get feedback sooner, and if they took a wrong path, they were “wrong for less time.” Smaller stories help increase progress The Smaller stories take less time to finish, which means it’s sooner to see progress. References: http://blogs.adobe.com/agile/2013/09/27/splitting-stories-into-small-vertical-slices/
  2. Notes: First increment should implement the first and last steps with future increments adding steps in the middle. Each increment should meet INVEST criteria.
  3. Notes: First increment should implement the first and last steps with future increments adding steps in the middle. Each increment should meet INVEST criteria.
  4. A Second example: Original Story: As a customer I want to delete a menu item from an order so that I don’t get food I don’t want. Split: As a customer I want to delete a single menu item from my order. As a customer I want to delete multiple menu items from my order.
  5. Also known as: Simple to complex Datatypes & Parameters Examples of when to use: Displaying information and then providing filtering/ordering capabilities Searches to identify searching by different criteria.
  6. Note: These splits create dependencies, but the way the stories are written makes the dependencies explicit.
  7. Note: Similar to Core & Enhance. User story text may be the same but acceptance criteria may differ. Scenarios Identified: Credit card is approved Credit card is declined Restaurant has item in stock Restaurant does not have item in stock.
  8. Common examples include localization challenges such as currency and language.
  9. Depending on the nature of the interface, the following options exist from simplest to most complex. API Only Character or Script User Interface Graphical User Interface (Generic) Graphical User Interface (Custom)
  10. Example platforms include: iOS iPhone iOS iPad Android Browser – IE Browser – Chrome Browser – Safari Browser - Firefox
  11. As a customer I want to know that the restaurant received my order – make it work. As a customer I want to know that the restaurant received my order within 5 seconds – make it fast.
  12. Potential acceptance criteria: Help team determine if we can do the translation automatically or if we need a separate copy of the menu in several different languages. This describes the question to be answered by the Spike. This is important to prevent aimless research.
  13. Note: Also, If a manual process exists for exceptions defer automating those.