slicing user stories

31
David Michel 25 October 2016 Slicing User Stories As a game player, I want to be able to move my rocket back and forth So that I can avoid asteroids @DavMichel76

Upload: david-michel

Post on 13-Apr-2017

105 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Slicing user stories

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

Page 2: Slicing user stories

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

Page 3: Slicing user stories

Granularity

As a game player, I want to be able to

move my rocket back and forthSo that I can avoid

asteroids?

Page 4: Slicing user stories

Backlog Refinement Process

Page 5: Slicing user stories

?How to break down large user stories

Page 6: Slicing 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+ +

Page 7: Slicing user stories

http://agileforall.com/resources/how-to-split-a-user-story

Page 8: Slicing user stories

Let’s explore some of the tools & techniques

Page 9: Slicing user stories

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

Page 10: Slicing user stories

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

Page 11: Slicing user stories

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

Page 12: Slicing user stories

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

Page 13: Slicing user stories

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/

Page 14: Slicing user stories

This was easy, right?

Page 15: Slicing user stories

Where the magic

happens

Your comfort

zone

Page 16: Slicing user stories

User Interface

Web Server

Database

Thin vertical slices

Page 17: Slicing user stories

Not horizontally

Page 18: Slicing user stories

As a game player, I want to be able tomove my rocket back and forthSo that I can avoid asteroids

DatabaseWeb server

GUI+ +

Page 19: Slicing user stories

User Interface

Web Server

Database

Thin vertical slices

Page 20: Slicing user stories

Thin vertical slices

User Interface

Web Server

Database

Thinning

Not splitting

Page 21: Slicing user stories

Simple to complex

Slicing by fidelity

http://availagility.co.uk/2009/12/22/fidelity-the-lost-dimension-of-the-iron-triangle/

Page 22: Slicing user stories

Incremental

Iterative

Iterative vs Incremental

Page 23: Slicing user stories

As a gardener,

I want to use a

So that I can plant this

or

or

or

Page 24: Slicing user stories

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

Page 25: Slicing user stories

• 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

Page 26: Slicing user stories

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

Page 27: Slicing user stories

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!

Page 28: Slicing user stories

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

Page 29: Slicing user stories

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

Page 30: Slicing user stories

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

Page 31: Slicing user stories

How do you slice your stories?