User story slicing exercise, September 2020, at Cork Software Crafters.
Learn and practice how to break user stories into really thin vertical slices.
https://www.meetup.com/Cork-Software-Craftsmanship-Meetup/events/273188357/
4. Agile work item types
VSTS agile work item types explained, Keith Williams Paulo Clavijo (@pclavijo)
5. INVEST
INVEST is a simple guide to write meaningful user stories introduced by Bill Wake:
● Independent, demo-able, potentially release-able
● Negotiable
● Valuable
● Estimable
● Small
● Testable
Paulo Clavijo (@pclavijo)
6. Story
Story = vertical, testable, user-valuable. Cuts across multiple architectural layers.
UI
API
BE
...
Story
Users
Paulo Clavijo (@pclavijo)
7. Story
example of a vertical User Story:
Acceptance Criteria are conditions of satisfaction. This story is "done" when the detailed
functionalities are completed.
- Verify that I can log into the system
- Verify that the date of my last login will be remembered
- Verify that I cannot navigate back to the landing page without first logging in
- ...
As a ATM end user
I must be able to log into my account
using card and PIN
In order to perform transactions
Paulo Clavijo (@pclavijo)
8. Story slicing
Story slicing = making thinner stories (but still vertical)
Minutes Hours Days Weeks Months
small big
Paulo Clavijo (@pclavijo)
10. Why thinner stories?
● Learn faster.
● Less risk (less time “underwater”).
● Deliver value more often.
● Happier users, stakeholders.
● More in-sync with other people & teams.
● Better product earlier.
● Better prioritizations.
● More business options.
● Sense of velocity.
● Easier planning.
● ...
Paulo Clavijo (@pclavijo)
13. Patterns for slicing stories
● Happy vs. Unhappy Path (e.g. enter credit card info, credit card is expired)
● Business Rule Variations
● Major Effort (e.g. add to shopping cart, add to wishlist, etc.)
● Simple/Complex (e.g. ship to single address)
● Operations (e.g. CRUD)
● Variations in Data
● Variations in Interfaces (e.g. mobile, tablet, PC)
● Defer System Qualities (e.g. performance, logging, etc.)
● Workflow Steps (e.g. steps to checkout at an online store)
● Break Out a Spike
● ... Paulo Clavijo (@pclavijo)
14. Patterns for slicing stories
Patterns for Splitting User Stories, Richard Lawrence
16. Patterns for slicing stories
As a content manager, I can create
new stories.
… Spanish.
… in German.
… in English.
… etc.
Paulo Clavijo (@pclavijo)
17. Patterns for slicing stories
Variations in Data
As a content manager, I can create
new stories.
… Spanish.
… in German.
… in English.
… etc.
Paulo Clavijo (@pclavijo)
18. Patterns for slicing stories
As a user , I can search for flights
between two destinations.
… using simple data input.
… with a fancy calendar UI.
Paulo Clavijo (@pclavijo)
19. Patterns for slicing stories
Variations in Interfaces
As a user , I can search for flights
between two destinations.
… using simple data input.
… with a fancy calendar UI.
Paulo Clavijo (@pclavijo)
20. Patterns for slicing stories
As a user , I can search for flights
between two destinations.
... (slow - just get it done, show a
"searching" animation).
… (in under 5 seconds).
Paulo Clavijo (@pclavijo)
21. Patterns for slicing stories
Defer System Qualities (performance)
As a user , I can search for flights
between two destinations.
... (slow - just get it done, show a
"searching" animation).
… (in under 5 seconds).
Paulo Clavijo (@pclavijo)
22. Patterns for slicing stories
As a user , I can search for flights
between two destinations.
… using flexible dates.
… including nearby airports.
… specifying a max number of stops.
… etc.
Paulo Clavijo (@pclavijo)
23. Patterns for slicing stories
Simple/Complex
As a user , I can search for flights
between two destinations.
… using flexible dates.
… including nearby airports.
… specifying a max number of stops.
… etc.
Paulo Clavijo (@pclavijo)
24. Patterns for slicing stories
As a user, I can manage my account. … I can edit my account settings.
… I can cancel my account.
… I can sign up for an account.
Paulo Clavijo (@pclavijo)
25. Patterns for slicing stories
Operations (e.g. CRUD)
As a user, I can manage my account. … I can edit my account settings.
… I can cancel my account.
… I can sign up for an account.
Paulo Clavijo (@pclavijo)
27. Order price calculator
● The product is is a point of sale application with user interface, three inputs and one output.
● Accept three inputs from the user:
○ How many items
○ Price per item
○ 2-letter state code
● Output the total price of the order. Give a discount based on the total price, then add state tax based on the
state code and discounted price.
Paulo Clavijo (@pclavijo)
Order value Discount rate
$1,000 3%
$5,000 5%
$7,000 7%
$10,000 10%
$50,000 15%
State Tax rate
UT 6.85%
NV 8.00%
TX 6.25%
AL 4.00%
CA 8.25%
28. References
- Elephant Carpaccio exercise by Alistair Cockburn.
- User Stories, Mike Cohn
- Vertical Slice, Wikipedia
- New Story Splitting Resource, Richard Lawrence.
- User Stories: Making the Vertical Slice, Kimberly Poremski.
- 10 powerful strategies for breaking down Product Backlog Items, Christiaan Verwijs
- VSTS agile work item types explained, Keith Williams
Paulo Clavijo (@pclavijo)
29. ● What went well?
● What problems did you encounter?
● What have you learned?
● What surprised you?
Paulo Clavijo (@pclavijo)
Retrospective