Top Banner
Slicing User Stories Dave Grant
25
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Slicing User Stories

Slicing User StoriesDave Grant

Page 2: Slicing User Stories

1. User Story Overview

Page 3: Slicing User Stories

What are User Stories?

“We demonstrate progress by delivering tested, integrated code that implements a story. A story

should be understandable to customers and developers, testable, valuable to the customer

and small enough so that the programmers can build half a dozen in an iteration.”

— @RonJeffries and @KentBeck

Page 4: Slicing User Stories

Three C’s

• Card

• Conversation

• Confirmation

Page 5: Slicing User Stories

INVEST in Good Stories

• Independent

• Negotiable

• Valuable

• Estimable

• Sized Appropriately or Small

• Testable

Page 6: Slicing User Stories

Why Split?

… small enough so that the programmers can build half a dozen in an iteration.

Page 7: Slicing User Stories

Epic vs Story

• Epics are very large stories

• Coarse-grained vs fine-grained

• Release-scope vs sprint-scope

• Describe scenarios for personas

Page 8: Slicing User Stories

2. Splitting Techniques

Page 9: Slicing User Stories

Our Epic

As a reader, I want to find a book, decide what to read, and buy it so that I have something to

read on holiday

Page 10: Slicing User Stories

Splitting Rules

• After splitting your story, it should still be a good story by INVEST standards

• Don’t slice on technology or tiers

• If the scope is too big, split. If you don’t know enough, spike.

Page 11: Slicing User Stories

Split on Conjunctions

As a reader, I want to find a book, decide what to read, and buy it so that I have something to

read on holiday

• As a reader, I want to find a book, so that I can read reviews

• As a reader, I want to read reviews, so I know if a book is worth buying

• As a reader, I want to buy a book, so that I have something to read on holiday

Page 12: Slicing User Stories

Split on Workflow Steps

As a reader, I want to buy a book, so that I have something to read on holiday

• As a reader, I want to add my book to a shopping basket, so can shop for multiple books

• As a reader, I want to provide my delivery address, so I don’t have to travel to collect my book

• As a reader, I want to pay for my book, so I don’t have to pay a driver on delivery

Page 13: Slicing User Stories

Split on Major Effort

As a reader, I want to pay for my book, so I don’t have to pay a driver on delivery

• As a reader, I want to pay by my favourite credit card (one of Visa, Mastercard, Diners Club, American Express), so I don’t have to pay a driver on delivery

• As a reader, I want to pay by any credit card (Visa, Mastercard, Diners Club, American Express), so I don’t have to pay a driver on delivery

Page 14: Slicing User Stories

Split on Acceptance Criteria

As a reader, I want to pay by my favourite credit card (one of Visa, Mastercard, Diners Club, American

Express), so I don’t have to pay a driver on delivery

• As a customer service rep, I want credit cards with invalid dates to be rejected, so that the user can provide a valid one

• As a customer service rep, I want credit cards with invalid PANs to be rejected, so that the user can provide a valid one

• As a fraud officer, I want credit cards with invalid addresses to be rejected, so that orders are not shipped to fraudulent addresses

Page 15: Slicing User Stories

Split on Complexity / Generics

As a reader, I want to find a book, so that I can read reviews

• As a reader, I want to pick a book from Oprah’s Book Club collection, so I can read reviews

• As a reader, I want to be recommended a book, so I can read reviews

• As a reader, I want to search for a book, so I can read reviews

Page 16: Slicing User Stories

Split on Data

As a reader, I want to search for a book, so I can read reviews

• As a reader, I want to search for a book by ISBN, so I can read reviews

• As a reader, I want to search for a book by author, so I can read reviews

• As a reader, I want to search for a book by title, so I can read reviews

• As a reader, I want to search for a book by publisher, so I can read reviews

• As a reader, I want to search for a book by blurb, so I can read reviews

Page 17: Slicing User Stories

Split on Non-Functionals

As a reader, I want to search for a book by blurb, so I can read reviews

• As a reader, I want to search all books by blurb within 500 milliseconds, so I can read reviews

• As a reader, I want to search all books by blurb within 10 seconds, so I can read reviews

Page 18: Slicing User Stories

Split on Interfaces

As a reader, I want to search for a book by blurb, so I can read reviews

• As a reader, I want to search for a book by blurb on my iPhone, so I can read reviews

• As a reader, I want to search for a book by blurb on my Nexus 6, so I can read reviews

• As a reader, I want to search for a book by blurb on my desktop, so I can read reviews

Page 19: Slicing User Stories

Split on CRUD

As a reader, I want to provide my delivery address, so I don’t have to travel to collect my

book

• As a reader, I want to add a delivery address, so I can choose my address quickly in future

• As a reader, I want to update a delivery address, so I can change my surname after getting married

• As a reader, I want to delete a delivery address that I no longer live at, so I don’t accidentally send an order to it in future

Page 20: Slicing User Stories

Split on Business Rules

As a reader, I want to add a delivery address, so I can choose my address quickly in future

• As a customer service rep, I want to suggest address normalisation changes, so that I can minimise incorrect deliveries of orders

• As a customer service rep, I want to validate postcodes, so that I can minimise incorrect deliveries of orders

Page 21: Slicing User Stories

3. Backlog Management

Page 22: Slicing User Stories

Treat Stories Like Cheese

Don’t slice more than you need to.

Page 23: Slicing User Stories

Beware Story Card Hell

Story Card Hell occurs when you have so many user stories in your product backlog (PBL) that it becomes impossible to:

• prioritise stories effectively

• understand each card

Your PBL should contain a mixture of user stories of different sizes, with enough ready stories to feed 2-3 sprints.

Page 24: Slicing User Stories

4. Questions?

Page 25: Slicing User Stories

References

Books

• The Inmates are Running the Asylum; Alan Cooper

• User Stories Applied; Mike Cohn

• Agile Product Management with Scrum; Roman Pichler

• User Story Mapping; Jeff Patton

• Planning Extreme Programming; Kent Beck and Martin Fowler

Articles

• Ask me!