Vertical User
Stories
Slicing the cake to create and
deliver valuable User Stories
Moisés Armani Ramírez
https://www.linkedin.com/in/moisesarmaniramirez/
How do you EAT a cake?
B) A slice C) Layer by layer
A) The whole cake
You can eat a cake however you want to
How do you BUY a cake?
B) A slice C) Layer by layer
A) The whole cake
However, you won't find a cake to buy in
any way you want to. Do you know why?
How a SOFTWARE is built How VALUE is delivered
OR
7º Agile Manifesto Principle: Working software is the primary measure of progress
"A vertical slice of cake means a user story
should contain work for as many of the different
layers as possible".
Vertical slice is a way of:
● Writing requirements
● Splitting user stories
● Following the INVEST guidelines
● Creating valuable user stories
Vertical User Stories
https://www.visual-paradigm.com/scrum/user-story-splitting-vertical-slice-vs-horizontal-slice/
https://www.deltamatrix.com/horizontal-and-vertical-user-stories-slicing-the-cake/
Think of a whole user story
as a multi-layer cake
I – Independent
N – Negotiable
V – Valuable
E – Estimable
S – Small
T – Testable
How to split user stories
Horizontal slice Vertical slice
Create a
new
service
Update
the X
service
Add a
new field
As…
I want…
So that…
Update
the X
service
Create a
new
service
Add a
new field
User Story
Sub-task
Update
Unit tests
Add Unit
Tests
Build UI
compone
nt
Create
API
document
ation
Review
the UI/UX
with the
designer
Back-end Back-end Front-end
Back-end Back-end Front-end
Even though you have full-stack
developers, you may find useful splitting
the work to be done by tech stack
Comparison between these two approaches
Horizontal slice Vertical slice
Focus on the solution Focus on the problem
Generates more User Stories Generates less User Stories
Complex to manage value Simple to manage value
Adds value when all related User Stories
are delivered
Adds value when the User Story is
delivered
Easy to estimate Not so easy to estimate
Throughput at Tech Stack level Throughput at User Story level
Difficult to get the Cycle Time Easy to get the Cycle Time
Kanban metrics definition
Cycle Time
"Cycle Time is the amount of time a team/
person spends actually working on a work item
up until it is ready for delivery". (businessmap)
"Is a metric that measures how long it takes for
an item to move from the “in-progress” column
to the “done” column". (Kanban Tool)
Throughput
"The number of work items exiting from the
system or a given part of it; measured in work
items delivered per time period. Throughput is
often referred to as delivery rate". (Kanban
University)
"It’s the number of completed cards per day,
week, or a given iteration time". (Kanban Tool)
Cycle time example
Horizontal slice Vertical slice
Story Create a new
service
Update the X
service
Add a new field As…
I want…
So that…
Tech Stack Back-end Back-end Front-end Back-end &
Front-end
Start Date 1 Sep 1 Sep 3 Sep 1 Sep
End Date 2 Sep 1 Sep 4 Sep 4 Sep
Cycle Time 2 days 1 day 2 days 4 days
Total Cycle Time 4 days 4 days
FE Cycle Time 2 days Don't know
Throughput example
Horizontal slice Vertical slice
Create a
new
service
Update
the X
service
Add a
new field
As…
I want…
So that…
Back-end Back-end Front-end
3 tickets 1 ticket
How many tickets were delivered between 1 and 4 September?
2 tickets Don't know
(at User Story level)
How many back-end tickets were delivered between 1 and 4 September?
Throughput challenges
Horizontal slice Vertical slice
Create a
new
service
Update
the X
service
Add a
new field
As…
I want…
So that…
Update
the X
service
Create a
new
service
Add a
new field
User Story
Sub-task
Update
Unit tests
Add Unit
Tests
Build UI
compone
nt
Create
API
document
ation
Review
the UI/UX
with the
designer
Back-end Back-end Front-end
Back-end Back-end Front-end
Hybrid approach: Should we track at User Story or sub-task level?
Front-end
Back-end
Throughput challenges
User Story requiring more
than one Tech Stack
User Story requiring one
Tech Stack only
Add a
new field
As…
I want…
So that…
Update
the X
service
Create a
new
service
Add a
new field
User Story
Sub-task
Build UI
compone
nt
Review
the UI/UX
with the
designer
Front-end
Back-end Back-end Front-end
Front-end
Front-end
Vertical Slice approach ONLY: Let's track at sub-task level. How do
we differentiate a Tech Stack sub-task from a regular sub-task?
Front-end
Back-end
The feature is going to be available in both Web and Mobile versions
As…
I want…
So that…
Update
the X
service
Create a
new
service
Add a
new field
Back-end Back-end Front-end
Vertical Slice approach ONLY: Even though the back-end and
front-end are already deployed to production, the User Story cannot
be completed until the Mobile sub-task is also done.
Add a
new field
Mobile
OMG! The Cycle
Time is going to
increase!!!
Throughput challenges
Working software
over
comprehensive documentation
https://agilemanifesto.org/
Find the right balance between delivery and metrics
Do not compromise your deliverables at the expense of a complex
process to collect metrics
Automate it as much as possible to avoid manual mistakes
Keep in mind
Agile Manifesto Value
Brainstorming session
What would be the best
approach for tracking both
value and tech stack?
Q&A
moisesarmaniramirez

Vertical User Stories

  • 1.
    Vertical User Stories Slicing thecake to create and deliver valuable User Stories Moisés Armani Ramírez https://www.linkedin.com/in/moisesarmaniramirez/
  • 2.
    How do youEAT a cake? B) A slice C) Layer by layer A) The whole cake You can eat a cake however you want to
  • 3.
    How do youBUY a cake? B) A slice C) Layer by layer A) The whole cake However, you won't find a cake to buy in any way you want to. Do you know why?
  • 4.
    How a SOFTWAREis built How VALUE is delivered OR 7º Agile Manifesto Principle: Working software is the primary measure of progress
  • 5.
    "A vertical sliceof cake means a user story should contain work for as many of the different layers as possible". Vertical slice is a way of: ● Writing requirements ● Splitting user stories ● Following the INVEST guidelines ● Creating valuable user stories Vertical User Stories https://www.visual-paradigm.com/scrum/user-story-splitting-vertical-slice-vs-horizontal-slice/ https://www.deltamatrix.com/horizontal-and-vertical-user-stories-slicing-the-cake/ Think of a whole user story as a multi-layer cake I – Independent N – Negotiable V – Valuable E – Estimable S – Small T – Testable
  • 6.
    How to splituser stories Horizontal slice Vertical slice Create a new service Update the X service Add a new field As… I want… So that… Update the X service Create a new service Add a new field User Story Sub-task Update Unit tests Add Unit Tests Build UI compone nt Create API document ation Review the UI/UX with the designer Back-end Back-end Front-end Back-end Back-end Front-end Even though you have full-stack developers, you may find useful splitting the work to be done by tech stack
  • 7.
    Comparison between thesetwo approaches Horizontal slice Vertical slice Focus on the solution Focus on the problem Generates more User Stories Generates less User Stories Complex to manage value Simple to manage value Adds value when all related User Stories are delivered Adds value when the User Story is delivered Easy to estimate Not so easy to estimate Throughput at Tech Stack level Throughput at User Story level Difficult to get the Cycle Time Easy to get the Cycle Time
  • 8.
    Kanban metrics definition CycleTime "Cycle Time is the amount of time a team/ person spends actually working on a work item up until it is ready for delivery". (businessmap) "Is a metric that measures how long it takes for an item to move from the “in-progress” column to the “done” column". (Kanban Tool) Throughput "The number of work items exiting from the system or a given part of it; measured in work items delivered per time period. Throughput is often referred to as delivery rate". (Kanban University) "It’s the number of completed cards per day, week, or a given iteration time". (Kanban Tool)
  • 9.
    Cycle time example Horizontalslice Vertical slice Story Create a new service Update the X service Add a new field As… I want… So that… Tech Stack Back-end Back-end Front-end Back-end & Front-end Start Date 1 Sep 1 Sep 3 Sep 1 Sep End Date 2 Sep 1 Sep 4 Sep 4 Sep Cycle Time 2 days 1 day 2 days 4 days Total Cycle Time 4 days 4 days FE Cycle Time 2 days Don't know
  • 10.
    Throughput example Horizontal sliceVertical slice Create a new service Update the X service Add a new field As… I want… So that… Back-end Back-end Front-end 3 tickets 1 ticket How many tickets were delivered between 1 and 4 September? 2 tickets Don't know (at User Story level) How many back-end tickets were delivered between 1 and 4 September?
  • 11.
    Throughput challenges Horizontal sliceVertical slice Create a new service Update the X service Add a new field As… I want… So that… Update the X service Create a new service Add a new field User Story Sub-task Update Unit tests Add Unit Tests Build UI compone nt Create API document ation Review the UI/UX with the designer Back-end Back-end Front-end Back-end Back-end Front-end Hybrid approach: Should we track at User Story or sub-task level? Front-end Back-end
  • 12.
    Throughput challenges User Storyrequiring more than one Tech Stack User Story requiring one Tech Stack only Add a new field As… I want… So that… Update the X service Create a new service Add a new field User Story Sub-task Build UI compone nt Review the UI/UX with the designer Front-end Back-end Back-end Front-end Front-end Front-end Vertical Slice approach ONLY: Let's track at sub-task level. How do we differentiate a Tech Stack sub-task from a regular sub-task? Front-end Back-end
  • 13.
    The feature isgoing to be available in both Web and Mobile versions As… I want… So that… Update the X service Create a new service Add a new field Back-end Back-end Front-end Vertical Slice approach ONLY: Even though the back-end and front-end are already deployed to production, the User Story cannot be completed until the Mobile sub-task is also done. Add a new field Mobile OMG! The Cycle Time is going to increase!!! Throughput challenges
  • 14.
    Working software over comprehensive documentation https://agilemanifesto.org/ Findthe right balance between delivery and metrics Do not compromise your deliverables at the expense of a complex process to collect metrics Automate it as much as possible to avoid manual mistakes Keep in mind Agile Manifesto Value
  • 15.
    Brainstorming session What wouldbe the best approach for tracking both value and tech stack?
  • 16.