be ready, be done: the art of slicing stories
TRANSCRIPT
Your experience with slicing stories…
I’ve done it before
I understand the concepts, but haven’t practiced much
It’s new to me
2
• ThinkinginStories• Spli;ngStories
• Q&A
3
Thinking in Stories 1
Asa…Iwantto…Sothat…
DesiredFunc,on(What?)
Whatdotheywantthe
systemtodo?
What’s in a Story? Outlinesagivenusersegment’sneedandourvalueproposiHon
UserRole(Who?)
WhowillusethisfuncHon?
EndResult(Why?)
Whatlargergoaloftheuserdoesthissupport?
It’smerelyathinkingtool!
5
MikeCohn'stemplate
The 3 C’s of a User Story
RonJeffries
6
What makes a good story?
INVEST
Independent
NegoHable
Valuable
EsHmable
Small
Testable
BillWake
7
Splitting Stories 2
The Big Picture
EasiertodefineupfrontHow?
Why?
Discussionreminder
AdaptedfromALMSummit3-TechTalk
Goal/Outcome
BigChunks
SmallerChunks
9
Slicing Vertically
10
Toobig Don’tslicehorizontally
VerHcalsliceenablesfeedback,validaHon,prioriHzaHon
Strategies for S
plitting S
tories
11
Useful when… Initial story describes a workflow or sequence of steps Key Questions Can you take a thin slice through the workflow first? Can you do the beginning and end of workflow first?
As a learner, I want to register for a class
and pay for it using a credit card so that I am better informed
about Agile
As a learner
I
can view
courses
As a custom
er
I can select
the
course I want
to signup for
As a learner
I
can review my
registration
As a learner
I
can submit my
registration
WORKFLOW STEPS
12IllustraHonderivedfromKentMcDonald
Useful when… Initial story encompasses multiple operations (e.g. “manage” or “configure” something) Key Questions Can you split the operations into separate stories? Are all these operations necessary just yet?
As a training provider, I want to manage my
course offerings, so that learners can view them
…I can
make
upload my
course
catalog
…I can
add a
course
…I can edit
a course
…I can
delete a
course
OPERATIONS
13
Useful when… Initial story impacts multiple roles and the impact is different for each role Key Questions Can you identify the various roles impacted? Are all roles relevant right now?
ROLE
As a training
coordinator,
I want to
register a
learner for a
class
As a learner, I want to register for a course so
that…
14
As a learner,
I want to
register for
a class
Useful when… Initial story does something to different pieces of data Key Questions Can you split the story to process one kind of data first and enhance with the other kinds later?
DATA BOUNDARIES
…view
course
name and
description
…view
course
agenda
view course instructor
qualifications
As a learner, I want to view
course information, so
that...
15
Useful when… Initial story has a simple core functionality that provides most of the value Key Questions Could you split the story to do that simple core first and enhance it with additional stories later?
SIMPLE FIRST, THEN ENHANCE
As a learner, I want to see my past
courses, so that…
…see all my
past
courses
…see
courses
completed
on a given
topic …see courses
completed in the past 2
months 16
Useful when… There is significant effort in doing the first story even after applying obvious split Key Questions Does it matter which one we do first? Can we group the other stories, given the difficult first story is done?
MAJOR EFFORT
…pay with
one credit
card type …pay with all
credit card
types (given
credit card
processing
functionalit
y
is in place)
As a learner, I want to pay for my class with Visa, American
Express, or MasterCard, so
that…
17
Useful when… Initial story is about interacting with multiple instances of something Key Questions Does working with nothing or one thing make it easier to get started? Do we really need to deal with multiple instances right now?
As an online shopper, I want to delete items from the shopping cart,
so that…
…delete
one item
at a time
…delete
collection
of items
from my
cart
ZERO, ONE, MANY
18
Tease out the business rules, and examples that clarify a user story
Rule Rule Rule
Story
Example
Example
Example
QuesHon
AssumpHon
ExampleMapping:MafWynne
19
RULES & EXAMPLES
AcceptanceCriteria
AcceptanceScenarios
Useful when… None of the patterns seem feasible and team is still baffled about splitting the story Key Questions What are the key uncertainties?
SPIKES
Spike:
Investigate
translation
capability
As a learner, I want to see the course offerings in the language of my choice so
that…
20
Zone of Control & Sphere of Influence
Deliverable(IWant…)CONTROL INFLUENCE
CONTR
OL
INFLUEN
CE
UserN
eed(SoTh
at…)
Goodstories
Fake,Misleadingstories
NotAcHonable
UnrealisHc
22GojkoAdzic
23
Of course you can have your cake and eat it too…
AslongasitisaSLICE ataHme!
24
References Books • Fifty Quick Ideas to improve your User Stories, Gojko Adzic • User Story Mapping, Jeff Patton • User Stories Applied, Mike Kohn Articles • http://agileforall.com/wp-content/uploads/2009/10/Story-Splitting-Cheat-Sheet.pdf • http://www.slideshare.net/arsenalist/splitting-userstories • http://idiacomputing.com/pub/UserStories.pdf • http://www.slideshare.net/kentjmcdonald/21-story-splitting-patterns-49940134 • http://blog.jbrains.ca/permalink/how-youll-probably-learn-to-split-features • https://cucumber.io/blog/2015/12/08/example-mapping-introduction • http://blog.agilistic.nl/8-useful-strategies-for-splitting-large-user-stories-and-a-cheatsheet/ Ask me for more!
25
Thanks!
Raj Indugula
Agile Coach, Trainer, Developer 20 years in industry; 13 years of Agile
Passionate about learning, can’t do without checklists, craves whiteboards!
ಧನ#$ದಗ' धन्यवाद