slicing user stories
TRANSCRIPT
David Michel25 October 2016
Slicing User Stories
As a game player, I want to be able to
move my rocket back and forthSo that I can avoid
asteroids
@DavMichel76
Requirements in Scrum?
As a game player, I want to be able tomove my rocket back and forthSo that I can avoid asteroids
Product Backlog Item
User story
Granularity
As a game player, I want to be able to
move my rocket back and forthSo that I can avoid
asteroids?
Backlog Refinement Process
?How to break down large user stories
Let’s NOT break things down in “waterfall”
phases…As a game player, I want to be able tomove my rocket back and forthSo that I can avoid asteroids
ImplementTest
Deploy+ +
http://agileforall.com/resources/how-to-split-a-user-story
Let’s explore some of the tools & techniques
Slicing by workflow
As customer I want to purchase the goods in my shopping basket so that I can receive my products at home
As customer I want to review and confirm my order, so I can correct mistakes before I pay
As customer I want to pay for my order with paypal, so I don’t have to look for my credit card As customer I want to receive
a confirmation e-mail with my order, so I have proof of my purchase
Slicing by operation
As shop owner I want to manage products in my shop, so I can update price and product information if it is changedAs shop owner I want to add new products, so customers can purchase them
As shop owner I want to update existing products, so I can adjust for changes in pricing or product information
As shop owner I want to delete products, so I can remove products that I no longer stock
As site owner I want to be able to request a new password when my login fails, so that I can try to log in again
Slicing by unhappy
As customer I want to log in with my account so that I can access my pages
As site owner I want to block users with 3 failed log in attempts in a row, so I can protect the site against hackers
As user I want to log in with my account, so that I can access secure pages
Slicing by “0>1>many”
As a chef, I want to view a customer’s order so I can proceed with the cookingAs a chef, I want to view a customer’s order with no
items so I can proceed with the cooking
As a chef, I want to view a customer’s order with one item so I can proceed with
the cooking As a chef, I want to view a customer’s order with
multiple items so I can proceed with the cooking
There are many, many more techniques…
• 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.co.uk/2009/02/breaking-down-larger-stories.html• User Story Hamburger technique https://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/• Features to User Stories http://idiacomputing.com/pub/UserStories.pdf• Patterns for spitting user stories http://agileforall.com/patterns-for-splitting-user-stories/• Twenty Ways to Split Stories http://xp123.com/articles/twenty-ways-to-split-stories/
This was easy, right?
Where the magic
happens
Your comfort
zone
User Interface
Web Server
Database
Thin vertical slices
Not horizontally
As a game player, I want to be able tomove my rocket back and forthSo that I can avoid asteroids
DatabaseWeb server
GUI+ +
User Interface
Web Server
Database
Thin vertical slices
Thin vertical slices
User Interface
Web Server
Database
Thinning
Not splitting
Simple to complex
Slicing by fidelity
http://availagility.co.uk/2009/12/22/fidelity-the-lost-dimension-of-the-iron-triangle/
Incremental
Iterative
Iterative vs Incremental
As a gardener,
I want to use a
So that I can plant this
or
or
or
As a I want to So that .
Expectedoutcome
ActionPersona
How do we know this is the best action to take? Maybe there’s a better way.
Too many assumptions
http://alanklement.blogspot.co.uk/2013/09/replacing-user-story-with-job-story.html
• Impossible to define any kind of acceptance criteria• Rarely expressed in a way that would make them appear valuable from
the perspective of the stakeholders
Slicing by “learn vs. earn”
Spikes
“As a developer, I want to understand how the new external API works”
https://leanpub.com/50quickideas
Instead of slicing technical deliverables and then looking for useful chunks of value…
Slicing by value
…Try to start from the opposite direction: slice value and look for useful technical chunks
https://leanpub.com/50quickideas
Slicing by “0>1>many”
As a chef, I want to view a customer’s order so I can proceed with the cookingAs a chef, I want to view a customer’s order with no
items so I can proceed with the cooking
As a chef, I want to view a customer’s order with one item so I can proceed with
the cooking As a chef, I want to view a customer’s order with
multiple items so I can proceed with the cooking
This break down seems particularly artificial. The technical breakdown makes sense to developers but doesn’t bring value to the user!
Instead of slicing technical deliverables and then looking for useful chunks of value…
Slicing by value
…Try to start from the opposite direction: slice value and look for useful technical chunks
https://leanpub.com/50quickideas
Backlog Refinement Process
Danger of breaking down things we already know a lot about… leaving the large, not yet understood items and at the bottom of the backlog
Danger of breaking down things we already know a lot about… leaving the large, not yet understood items and at the bottom of the backlog
Spiketo learn Earn by 1st delivering
low-fidelity solution
Then iterate towards more refined
How do you slice your stories?