The document discusses story slicing to improve team and organizational agility. It defines three levels of story slicing: capability slicing, functional slicing, and technical slicing. Capability slicing explores options to satisfy user needs, functional slicing identifies the simplest customer workflow, and technical slicing breaks tasks into basic and sophisticated options. Story slicing keeps options open, enables early delivery of value, and reduces risk. It provides focus, flexibility, and shared understanding of problems and solutions.
Beyond INVEST - How to use story slicing to improve team and organisational agility
1. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Beyond I-N-V-E-S-T
How to use Story Slicing to improve
team and organisational agility
Neil Killick
⍟ Product development practitioner
⍟ Business, customer and user experience (UX) analyst
⍟ Lean-agile coach and trainer
2. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
What you will learn tonight
⍟ What is a user story, and what makes a good one?
— Look beyond "As a... I want... So that..." and the I-N-V-E-S-T model
⍟ The 3 levels of story slicing
— Capability ⍟ Functional Implementation ⍟ Technical Implementation
3. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
The story a user or potential user of your product
or service might tell you — about something they
want to achieve but currently cannot
•Told from that user’s perspective, not yours
•The “what” and “why”, NOT the “how"
— We might implement something which provides the capability, but the story itself is in the
problem space, not the solution space
What is a user story?
4. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Which is these is a valid story by the definition I
just gave? 1, 2 or both. Why?
Consider these stories from a hypothetical first
Facebook backlog:
1/ Jane wants to share photos and other stuff with the
important people in her life
2/ Jane wants to be able to add friends
5. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
• “Add friends” is a feature which Facebook built to enable
users to share photos and other content with people in their
life, but this could be achieved in other ways, e.g. importing
automatically from contacts
• Even if Jane was already a Facebook user and requested an
“add friends” feature, there is still an underlying need to
explore; what does Jane want to achieve by “adding friends”?
Beware of “features”
6. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
I-N-V-E-S-T is an excellent,
useful model for user story
implementation, invented by Bill
Wake
BUT… given what you’ve just
heard, what is wrong with it?
Independent
Negotiable
Valuable
Estimable
Small
Testable
What makes a good user story?
7. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Estimable
Small
Testable
Independent
Negotiable
Valuable
Solution
space
Problem
space
What makes a good user story?
8. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Narrowing or splitting a broader story into a
less general, more precise story or set of
stories, each of which independently satisfies
the broader story’s intent.
What is story slicing?
9. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Why slice stories?
10. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
• Enables early and often delivery of value
— Each slice (option) is independently implementable and valuable (if
we ship)
• Enables incremental/iterative delivery
— Deliver incremental value while iterating toward a broader objective
— Show demonstrable and measurable progress
• De-risks “we want it all”
• Enables focus
— Expose valuable options —> simplicity —> focus —> “maximise the
amount of work not done” —> efficient and effective
• Keeps focus on the outcome
— Work driven by narrowing the scope of a statement
— Smaller chance of additional scope appearing and working on “the
wrong things”
• Necessarily “smaller”
— Narrows scope, thus quicker to implement and release to
customers
• Enables flexibility
— Allows needs and solutions to change
• Enables shared understanding
— of problem and/or solution
• Exposes risk
— schedule, technical and other
• Creates consistency
— in “size” of work, and how we work
Why slice stories?
11. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
CAPABILITY
What does the CUSTOMER want to be able to do?
FUNCTIONAL
What tasks or steps will the CUSTOMER need to take to achieve the capability?
TECHNICAL
What tasks or steps will WE need to take to implement the functionality?
3 levels of story slicing
12. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Capability Slicing
• Exploring our options in terms
of what capabilities we might
provide to satisfy a broader
capability or value proposition
• Do this up front and frequently
• Responsibility of product
managers/owners
• Slice as far as possible for
stories you would like to
address next (or soon)
13. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
“As a Facebook user, I can share stuff I find
interesting with other people in my life…”
Slice “Facebook user”, “share”, “stuff I find interesting” and “other people in my
life” (the”seams” in the story):
“Socialisers” can tell close friends about their Friday night plans
“Town criers” can promote articles to all of their acquaintances
Students can exchange homework tips with their school friends
Family members can share photos with each other
Capability Slicing
14. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Slice this story into at least 100 narrower stories:
TIP: Identify the 3 “seams” in the story
Capability Slicing Exercise — 5 minutes
Enable Acme Bank customers to bank with us online
15. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Enable Acme Bank [customers] to bank with us online
Example slices:
• [Small business customers] can bank with us online
• [Large business customers] can bank with us online
• [New customers] can bank with us online
• [Mortgage customers] can bank with us online
• [School kids] can bank with us online
5 stories
16. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Enable Acme Bank customers to [bank with us] online
Example slices:
• Customers can [pay their bills with BPAY] online
• Customers can [transfer money between accounts]
online
• Customers can [request an overdraft] online
• Customers can [apply for a new account] online
• Customers can [apply for credit cards] online
25 stories
17. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Enable Acme Bank customers to bank with us [online]
Example slices:
• Customers can bank with us [from their mobile phone]
• Customers can bank with us [from their desktop computer]
• Customers can bank with us [from their laptop]
• Customers can bank with us [from their iPad]
• Customers can bank with us [from their Android tablet]
125 stories
18. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Enable Acme Bank customers to bank with us online
Example slices:
• Small business customers can pay their bills with BPAY from their mobile phone
• Large business customers can transfer money between accounts from their
desktop computer
• New customers can request an overdraft from their laptop
• Mortgage customers can apply for a 2nd mortgage from their iPad
• School kids can transfer money between accounts from their Android tablet
• Personal customers can pay their bills with direct deposit from Chrome (latest
version)
• Gold credit card holders can upgrade to platinum from their Apple Watch
• etc….. etc….
19. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
We want to stay in the capability space as
close to implementation time as possible
BUT WHY?
20. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
- Keeps our options open
- Enables us to focus on the highest impact things to work on now (i.e. that
which will bring value to the customer and/or us), and defer the rest
- Enables the development* team to be the ones solving the problems,
rather than having someone defining the solutions for them
*In Scrum and other agile software development approaches, the development team
includes design thinkers/specialists, and we all iterate over the problem domain with the
customer, no hand-offs
Because it…
21. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Implementation
— Functional Slicing
• Identify simplest customer journey we
can implement, and options for
incrementally improving it
• Get core functionality working (vertical
slices / walking skeleton)
• Get early feedback on user experience
• Show demonstrable progress
• Do this Just-In-Time (JIT)
— Maximum information about value
and solution options
— Reduce waste of premature analysis
and solution design
22. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Step 1
GOAL
Step X
Most basic
Option
Most basic Most basic Most basic Most basicMost basicMost basic Most basic
Step 2 Step 3 Step 4 Step 5 Step 6 Step 7
Option
Option
Option OptionOption
Option
Option Option
Functional slicing = Simplest customer experience
23. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Enable Acme Bank customers to pay their bills with BPAY on our website
Slice this story functionally
TIP: Identify the simplest customer workflow we can implement,
and incremental options for making it shippable
Functional Slicing Exercise — 10 minutes
24. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Enable Acme Bank customers to pay their bills with BPAY on our website
Select
account
Select
biller
Enter
amount
Enter
transaction
reference
BILL PAID
Submit
payment
info
Receive
verification
code
Enter
verification
code
Confirm
payment
Receive
confirmation
Enter code
manually
Select
from a
dropdown
Search
based on
input
Select
from most/
recently
used
Enter
amount
manually
Enter
reference
manually
No 2FA No 2FA
Receive
code by
email
Receive
code by
SMS
Enter code
manually
Code entered
automatically
See
message on
screen
Receive
email
See
transaction
details
Select
from a
dropdown
Click
submit
button
Click
submit
button
25. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
• Identify simplest, quickest way we can
implement the functional slice, and
options for incrementally improving the
solution
• Avoid over-engineering
• Expose and reduce technical/schedule risk
• Show demonstrable progress
• Do this Just-In-Time (JIT)
— Maximum information about solution
options
— Reduce waste of premature analysis
and solution design
Implementation
— Technical Slicing
26. Neil Killick, 2018, All Rights Reserved neil_killick neilkillick.com
Collaborative implementation slicing with the
“Hamburger Method”
27. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Do A
Do B
Do C
Do D
Do G
Do E
Do F
Most basic ?
Do H
? ? Most sophisticated
Most basic ? ? ? Most sophisticated
Most basic ? ? ? Most sophisticated
Most basic ? ? ? Most sophisticated
Most basic ? ? ? Most sophisticated
Most basic ? ? ? Most sophisticated
Most basic ? ? ? Most sophisticated
Most basic ? ? ? Most sophisticated
Technical tasks
• Identify 7 or 8 technical
tasks we need to do to
achieve the workflow above
• Identify options for
achieving them from most
basic to most sophisticated
Select
account
Select
biller
Enter
amount
Enter
transaction
reference
Submit
payment
info
Confirm
payment
Receive
confirmation
BILL PAID
Enable Acme Bank customers to pay their bills with BPAY on our website
28. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Get user accounts
Get billers
Validate entered biller code
Validate entered amount
Validate payment
2FA - Send verification code
2FA - Validate verification code
SQL query to DB Optimised stored proc
No billers Hardcode billers Billers in txt file All billers from DB User’s billers from DB
No validation Validate code Validation with errors
No validation Validate funds available
No verification Email code SMS code
No validation Manual check Auto check
Dummy API Sandbox API Production API
Validate daily limit
Confirm payment No confirmation On screen message Msg and log Email and log
Select
account
Select
biller
Enter
amount
Enter
transaction
reference
Submit
payment
info
Confirm
payment
Receive
confirmation
BILL PAID
Enable Acme Bank customers to pay their bills with BPAY on our website
29. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Story slicing at all levels enables agility
•Stay in the problem space and keep your options open
— We tend to jump away from capability way too early, and lock ourselves into both functional and
technical design decisions that are hard to change; DON’T DO THIS!
•Slices are options, not things we “must do”
— Slicing is an activity which helps us choose the highest value capabilities, functional and technical
options in an incremental and iterative way
•Stay flexible with design and architecture
The trick with agile software development is to be guided by the capability space, and always have a
high level functional and technical design for delivering those capabilities which is easy to change as we
go along
30. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
• Splitting User Stories — the Hamburger Method by Gojko Adzic
https://gojko.net/2012/01/23/splitting-user-stories-the-
hamburger-method/
• How to Split User Stories by Dan Puckett
https://www.infoq.com/news/2011/04/how-to-split-user-stories
• Splitting User Stories by George Dinwiddie
blog.gdinwiddie.com/2011/05/01/splitting-user-stories/
• The Essence of Story Slicing in Agile Development by Neil Killick
https://medium.com/@neil2killick/the-essence-of-story-slicing-in-
agile-development-fc16a1226941
Further reading
31. Neil Killick, 2019, All Rights Reserved
neil_killick neilkillick.com
Thank you!
Questions and
discussion