How to eat an elephant? Agile Breakfast Basel, 12. Juni 2014

How to eat an elephant?
Agile Breakfast Basel, 12. Juni 2014
Silvan Saxer & Sibylle Peter
Photos
- Elephant: Matt Biddulph, https://flic.kr/p/bNNaTB
- Carpaccio: Charleston’s The Digitel, https://flic.kr/p/93Rw2J
Elephant Carpaccio Exercise
Your first go at splitting?
 How many new stories did you get?
 Are they good?
14. Juli 2014
2
What is a good user stoy?
Properties of a good story
Cuts accross layers
INVEST (Bill Wakes, 2003)
User
presentation
process
application
data
Story
Independent
Negotiable
Valuable
Estimate-able
Small
Testable
Reference:
http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/
14. Juli 2014
3
What is a good user stoy?
Cumulative Value delivered over time
Value vs. Time
Deliver value incrementally




small stories
value delivered
(cumulative)
Earlier and incremental delivery
Early feedback from customers
Better prioritizations and easier planning
Focus on high valued stories first
big stories
 Be warned: it needs a mind change
waterfall
time
14. Juli 2014
4
Example
Search for car matriculation documents
 Search Functionality
Policynr.
Status
LicencePl
Firstname
Lastname
PLZ
Document:
Search
 eVn  eSk  RM  AT
Reset
Doc
Id
Date
Status
LicencePl
Firstname
Lastname
RM
83
01.02.1999
Erledigt
BS 123456
Peter
Tester
AT
83
01.02.2014
Offen
ZH 123456
Sandra
Tester
RM
15
01.02.1999
Erstellt
BL 454
Peter
Tester
RM
83
01.02.1999
BS 123456
Peter
Tester
RM
83
01.02.1999
SG 8785
Peter
Tester
RM
83
01.02.1999
Erledigt
BS 123456
Peter
Tester
RM
83
01.02.2011
Erledigt
BS 123456
Peter
Tester
View
Erledigt
Edit
Erledigt
Delete
previous
next
14. Juli 2014
5
Story splitting
Split by development process
INVEST
Independent
Design
Negotiable
search functionality
Valuable
Estimate-able
Code
search functionality Small
Testable






Test
for search functionality
small stories
Deploy
search functionaltiy
value delivered
(cumulative)
waterfall
time
14. Juli 2014
6
Story splitting
Split by architecture
Design/Build/Test
User Interface
Design/Build/Test
Middle Tier
Design/Build/Test
Database
small stories
Write Acceptance-Tests
value delivered
(cumulative)
waterfall
time
Deploy
14. Juli 2014
7
Spike
Major effort
Var. in data
Business Rule
Variation
Workfl. steps Simple/
Operations Complex
Story Splitting Patterns
(Richard Lawrence, 2009)
Data entry Defer Role
methods Perform.
Story splitting
Small stories
Show sample result when hitting
search button
Search for first 100 documents
for one document type
Search for first 100 documents
for other document types
Search restriction for
policy number
Search restriction for
first name
INVEST
Independent
Negotiable
Valuable
Estimate-able
Small
Testable






Other search criteria…
Easy search
(one field search)
small stories
value delivered
(cumulative)
View selected document
time
Edit selected document
Only show user’s documents
Optimize search performance
Direct search feedback on entry
14. Juli 2014
8
Story splitting
Patterns of story splitting (Richard Lawrence, 2009)
Workflow steps
Fundamental steps of the
workflow first, other steps later
Business Rule Variation
Decompose a complex business
rule in several concrete ones
Major Effort
Make a considerable initial effort
explicit in a separate story
Simple/Complex
Do first the simplest thing that
works, then add complexity
Variation in Data
Treat each variation in data as a
separate story
Data Entry Methods
Build the simplest UI first and
add more entry features later
Defer performance
First make it work, then make it
work fast
Operations
Model every operation as a
separate story (e.g., CRUD)
Role
Treat different user role
competences in different stories
Spike
Make a technological
experiment to learn more
References:
http://www.agileforall.com/2012/01/new-story-splitting-resource/, http://www.agileforall.com/2009/10/patterns-for-splitting-user-stories/
14. Juli 2014
9
small stories
Conclusion
value delivered
(cumulative)
big stories
waterfall
 Deliver business value incrementally
time
 Stop breaking stories by process or architecture
 Apply story splitting patterns to cut the stories in small, valuable pieces
 Profit from
– Earlier feedback
– Happier customers
– Happier developers
14. Juli 2014
10
Next step
 Value-Curve for our Example:
Other features
Nice UI
all discounts
one discount
all VAT
8% VAT
No VAT
 For the next 10 Minutes apply what you have learned to your backlog
– For this example: aim for the extreme!
 After that, we will start developing
14. Juli 2014
11
References

Elephant Carpaccio Exercise:
– http://alistair.cockburn.us/Elephant+Carpaccio+exercise
– https://docs.google.com/document/d/1TCuuu-8Mm14oxsOnlk8DqfZAA1cvtYu9WGv67Yj_sSk/pub

Properties of good user stories:
– http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/
– http://xp123.com/articles/independent-stories-in-the-invest-model/
– http://xp123.com/articles/valuable-stories-in-the-invest-model/
– http://www.objectmentor.com/resources/articles/IIDII.pdf
– http://blogs.msdn.com/b/progressive_development/archive/2009/03/27/motley-says-vertical-slices-soundslike-something-you-do-to-salami.aspx

Story splitting techniques:
– http://www.agileforall.com/2012/01/new-story-splitting-resource/
– http://www.agileforall.com/2009/10/patterns-for-splitting-user-stories/
– http://www.agileforall.com/splitting-user-stories/
– http://agile-management.com/wordpress/splitting-user-stories/
– http://lassekoskela.com/thoughts/7/ways-to-split-user-stories/
– http://www.jbrains.ca/permalink/how-youll-probably-learn-to-split-features
14. Juli 2014
12