splittingstories alndc jan2012 - agile alliance...1/11/12 1 spling(user(stories(workshop! @arinsime!...
TRANSCRIPT
1/11/12
1
Spli%ng User Stories Workshop
@ArinSime
434.996.5226 [email protected]
Our plan
• User story primer • Why is small so important?
• Common ways to split stories
• Hands on pracEce! • RetrospecEve
1/11/12
2
Agile process flow
Build/revise Backlog
Plan an IteraEon
Test, Develop, Integrate, Commit
Daily Standups Review/Demo
Retro-‐specEve
User stories
Acceptance Requirements Priority EsEmates
1/11/12
3
What is the right story size?
Weeks?
Days?
Hours?
How does size affect prioriEzaEon?
Highest Priority
Lowest Priority
1/11/12
4
How does size affect esEmaEon?
Highest Priority
Lowest Priority
3 13 8 5 5
Smaller size allows for error
1/11/12
5
How does size affect the customer?
This? Or This?
Summary of why smaller is beYer
• Smaller is easier to prioriEze • Smaller is easier to esEmate
• Smaller is easier to change on the fly
• Smaller is easier to course-‐correct
• Finishing lots of small things just feels good!
1/11/12
6
Exercise #1
• Break into groups and write some intenEonally large user stories
• Your project: Home kitchen remodeling
Exercise #2
• Nominate a Product Owner in your group • They now take your big stories, and bring them over to another group
• Each new group should break down the big stories into smaller ones
• Use one of the anE-‐paYerns I give you
Common anti-patterns: http://www.jbrains.ca/permalink/how-youll-probably-learn-to-split-features
1/11/12
7
Exercise #2 Results
• Product Owners – what did you observe? • Teams – what did you observe?
Split by verEcal slices of value
What happens if you fire this guy?
1/11/12
8
AddiEonal techniques
• CRUD – Create, Read, Update, Delete • External dependencies • Different paths through the system
PracEce makes be#er … there is no perfect …
INVEST
Independent
NegoEable
Valuable EsEmable
Small Testable
1/11/12
9
Exercise #3
• Keep the same product owners/groups • Discard the “anE-‐paYern” cards you just used to break down the big stories
• Now try to break down the stories “the right way”
Exercise #3 Results
• Product Owners – what did you observe? • Teams – what did you observe?
1/11/12
10
Exercise #4 / Case Study
How could we split this story further?
As a builder, I want to record daily events so that I have a record for my clients and myself.
Case Study Mockup
1/11/12
11
Case Study Acceptance Criteria
Scenario 1: Log Display Op9ons
Given builder has selected a date
When builder clicks "add" for a given area Enters a note
And picks a visibility
Then the note is displayed in the Job Notes under the right heading area.
Scenario 2: Job Notes Categories
Given a builder is entering a note
When they choose an area Then there should be the following
opEons:
• Trade Work Performed
• …
Scenario 3: Record of User, Date, Time
Given a builder has entered a note
When it displays Then the builder name, date and Eme of
the note are displayed next to the note.
Scenario 4: Loca9on of New Notes
Given a builder is adding a note
When they click the plus sign to add a note
Then current notes in that area are "pushed down"
And the Post Note box appears above exisEng notes.
Case Study Acceptance Criteria
Scenario 5: Ordering of Notes
Given there are exisEng notes for an area
When they are displayed under the area heading
Then they should be sorted with the most recent on top.
Scenario 6: Note Box Size and Expansion
Given that a builder is entering a new note
When he starts typing
Then the text area box will be 2 lines tall
And will expand verEcally as the builder enters more lines.
Scenario 7: Visibility Default
Given that a builder is entering a new note
When he starts typing Then the "Do not show this item to client"
box will default to being unchecked.
Scenario 8: Security
Given that a user is not a builder or is a builder who does not belong to the contractor account to which the project he is trying to view belongs
When he tries to view the job log Then he receives an error message
1/11/12
12
RetrospecAve What did you learn today? What can I do to improve this workshop?
@ArinSime
434.996.5226 [email protected]