Upload
garm-lucassen
View
233
Download
0
Embed Size (px)
Citation preview
Grimm User StoriesGarm Lucassen, 25 April 2016
Garm Lucassen25 April 2016
Topics• Who am I?
• What is the Grimm Method?
• Creating user stories & Grimm Tool
• Poker planning
• Development
• Company Examples
• Interactive Workshop
2
Garm Lucassen25 April 2016 3
Garm Lucassen25 April 2016
Who am I?
4
Garm Lucassen25 April 2016
Garm Lucassen• PhD @ Utrecht University
- Software product management • students • professionals
- User stories
• Contact: [email protected]
• http://garmlucassen.nl • http://softwareproductmanagement.org
5
What is the Grimm Method?
6
Garm Lucassen25 April 2016
The Brothers Grimm
7
Cinderella The Frog PrinceHansel and Gretel
• 1806: start collecting the best German folk tales
Garm Lucassen25 April 2016
The Brothers Grimm
8
Cinderella The Frog PrinceHansel and Gretel
• 1806: start collecting the best German folk tales
• Did not come up with these stories themselves
Garm Lucassen25 April 2016
The Grimm Process
9
1. Invite story tellers in their home
2. Transcribe and edit heavily
3. Include in their flagship product: Grimm’s Fairy Tales
Garm Lucassen25 April 2016
User stories are similar
10
1. Talk to users or customers
2. Transcribe conversation and edit into user stories
3. Include in pied piper project development
As a role I want to action (so that benefit, , )
Garm Lucassen25 April 2016
What is a user story?• User stories represent customer requirements in a card,
leading to conversation and confirmation (Jeffries, 2001)
• User stories only capture the essential elements of a requirement: - who it is for - what it expects from the system - why it is important (optional?)
• Simple format used by 70% of practitioners
11
who what why
(Connexxtra)As a role I want to action (so that benefit, , )
(Lucassen et al., 2016)
Garm Lucassen25 April 2016
What is a user story?• “As a User, I want to purchase an event ticket”
• “As a User, I want to be notified when an event is close to becoming sold out, so that I do not miss the event”
12
“As a User I want to search for new events by favorited organizers
so that I am the first to know of new events”
, ,
Garm Lucassen25 April 2016
User Story Goals
• Capture and communicate underlying decisions
• Intention is to get out of your way
• Focus on tasks that create value: • research • programming • developing business cases
13
Garm Lucassen25 April 2016
Practitioners struggle
• Only one person concerned with user stories • Single point of failure -> insufficient QA
• 56% of user stories contained easily preventable errors (n=~1000)
14
Garm Lucassen25 April 2016
Practitioners struggle
• Only one person concerned with user stories • Single point of failure -> insufficient QA
• 56% of user stories contained easily preventable errors (n=~1000)
15
Who has ownership of user stories at pied piper?
Garm Lucassen25 April 2016
Practitioners struggle• Existing quality guidelines are insufficient and
unpopular
• Some practitioners use INVEST (23,5%)
• Non-specific
• Not actionable
• Still good to know!
16
IndependentNegotiable Valuable Estimable Simple Testable
Garm Lucassen25 April 2016
Grimm Method
• Foster more conversation around user stories
• The Quality User Stories Framework contains 13 quality characteristics for common issues
• The Grimm Tool automatically detects some of these issues
17
to the rescue
Fostering conversation surrounding user stories
18
Garm Lucassen25 April 2016
Simplified lifetime of user stories
1.Grimm analyst elicits coarse-grained user stories
2.Grimm analyst refines stories with developers
3.Engineers start developing based on final stories/tasks
19
Garm Lucassen25 April 2016
User story lifetime example1.As a user, I want to create a profile (User profile app)
2.Create multiple stories and subtasks during refinement
3.Engineers develop based on final stories/tasks
20
Garm Lucassen25 April 2016
Problems• Risk of miscommunication at every step
• Consequence: wrong software
• Rework
• Late changes
• Leads to project failure and cost overruns
21
Garm Lucassen25 April 2016
Problems• Agile solution: more communication!
• But how..?
• Just In Time
• Grimm: request more details at key moments: 1. requirement elicitation 2. poker planning 3. software development
22
Garm Lucassen25 April 2016
In practice
Individuals that are not responsible for creating user stories are unable or unwilling to voice their concerns
23
Garm Lucassen25 April 2016
In practice
Individuals that are not responsible for creating user stories are unable or unwilling to voice their concerns, leading to rework later on
24
Garm Lucassen25 April 2016
In practice
Individuals that are not responsible for creating user stories are unable or unwilling to voice their concerns, leading to rework later on
25
Do you recognize this problem?
Garm Lucassen25 April 2016
In practice
Individuals that are not responsible for creating user stories are unable or unwilling to voice their concerns, leading to rework later on
Pied Piper - Speedup #2: not a major problem! But still room for improvement!
26
Do you recognize this problem?
Quality User Story Framework
27
28
User Story Quality
Pragmatic
Complete Independent Uniform UniqueEstimatable Full sentence
Semantic
Conflict-free UnambiguousProblem-oriented Conceptually sound
SyntacticMinimal Atomic Well-formed
29
IndividualWell-formed A user story includes at least a role and an actionAtomic A user story expresses a requirement for exactly one featureMinimal A user story contains nothing more than role, action and benefit Conceptually sound The action expresses a feature and the benefit expresses a rationaleProblem-oriented A user story only specifies the problem, not the solution to itUnambiguous A user story avoids terms or abstractions that lead to multiple interpretationsFull sentence A user story is a well-formed full sentenceEstimatable A story does not denote an unrefined requirement that is hard to plan and prioritize
SetConflict-free A user story should not be inconsistent with any other user story Unique Every user story is unique, duplicates are avoidedUniform All user stories in a specification employ the same templateIndependent The user story is self-contained and has no inherent dependencies on other storiesComplete Implementing a set of user stories creates a feature-complete application, no steps are missing
Quality User Story Framework
1. Creating user stories 2. Poker planning 3. Developing software
30
1. Creating user stories
31
1. Creating user stories
32
1. Well-formed 2. Atomic 3. Minimal 4. Uniform 5. Conceptually sound 6. Problem oriented 7. Full sentence
Garm Lucassen25 April 2016 33
Individual: Well-formedA user story includes at least a role and an action
Quality defect exampleI want to see an error when I cannot see recommendations after I upload an article
⬇As an End-user, I want to see an error when I cannot see recommendations after I
upload an article
add role
Example 1- well-formed
Garm Lucassen25 April 2016 34
Individual: AtomicA user story expresses a requirement for exactly one feature/problem
Quality defect exampleAs a User, I want to click a particular location from the map and thereby perform a
search of landmarks associated with that latitude longitude combination
⬇1. As a User, I want to click a particular location from the map
2. As a User, I want to search landmarks associated with a location based on lat long
split
Example 2- atomic
Garm Lucassen25 April 2016 35
Individual: MinimalA user story contains nothing more than role, action and benefit
Quality defect exampleAs a care professional, I want to see the registered hours of this week (split into
products and activities). See: Mockup from Alice NOTE: - First create the overview screen - Then add validations⬇
As a care professional, I want to see the registered hours of this week
(re)move unnecessary information
Example 3 - minimal
Garm Lucassen25 April 2016 36
Example 4 - uniformSet: Uniform
All user stories follow roughly the same template
Quality defect example1. As a User, I want to create an account 2. As a User, I want to reset my password
3. As an Administrator, I receive an email notification when a new user is registered
⬇As an Administrator, I want to receive an email notification when a new user is
registered
add want to
Garm Lucassen25 April 2016 37
Example 5 - conceptually sound
Individual: conceptually soundThe action expresses a feature and the benefit expresses a rationale
Quality defect exampleAs a User, I want to open the interactive map, so that I can see the location of
landmarks
⬇
Garm Lucassen25 April 2016 38
Example 5 - conceptually sound
Individual: conceptually soundThe action expresses a feature and the benefit expresses a rationale
Quality defect exampleAs a User, I want to open the interactive map, so that I can see the location of
landmarks
⬇1. As a User, I want to open the interactive map, so that I can plan my vacation 2. As a User, I want to see the location of landmarks, so that I know where to go
ends becomes separate means
Garm Lucassen25 April 2016 39
Example 6 - problem orientedIndividual: problem oriented
A user story only specifies the problem, not the solution to it
Quality defect exampleAs a care professional I want to save a reimbursement. - Add save button on top right
(never grayed out)
⬇
Garm Lucassen25 April 2016 40
Example 6 - problem orientedIndividual: problem oriented
A user story only specifies the problem, not the solution to it
Quality defect exampleAs a care professional I want to save a reimbursement. - Add save button on top right
(never grayed out)
⬇As a care professional I want to save a reimbursement
remove solution
Garm Lucassen25 April 2016 41
Example 7 - full sentenceIndividual: full sentence
A user story is a well-formed full sentence
Quality defect exampleServer configuration
⬇As an Administrator, I want to configure the server's sudo-ers
add “want to”
Keep in mind when creating user stories
42
1. Well-formed 2. Atomic 3. Minimal 4. Uniform 5. Conceptually sound 6. Problem oriented 7. Full sentence
Grimm Tool
43
Garm Lucassen25 April 2016
Grimm Tool• Automatically detects simple errors:
well-formed, atomic, minimal, uniform, duplicates
• Integrates with Jira - automatically posts comments
44
Garm Lucassen25 April 2016
Grimm Tool
45
Garm Lucassen25 April 2016
Grimm Tool
46
Poker planning
47
Poker planning
48
1. Unambiguous 2. Estimatable 3. Conflict-free 4. Independent 5. Unique
Garm Lucassen25 April 2016 49
Poker planning impact
• Bring a QUS cheat sheet to poker planning
• Use question mark to indicate you don’t know
• If applicable, use QUS terminology to convey the problem
• Discuss, change if necessary, repeat
Garm Lucassen25 April 2016 50
Individual: unambiguousA user story avoids terms or abstractions that lead to multiple interpretations
Quality defect exampleAs a User, I want to edit the content that I added to a person’s profile page
⬇
Example 1 - unambiguous
Garm Lucassen25 April 2016 51
Individual: unambiguousA user story avoids terms or abstractions that lead to multiple interpretations
Quality defect exampleAs a User, I want to edit the content that I added to a person’s profile page
⬇As a User, I want to edit video and text content that I added to a person’s profile page
clarify the content
Example 1 - unambiguous
Garm Lucassen25 April 2016 52
Set: estimatableA story does not denote a coarse-grained requirement that is difficult to plan and
prioritize
Quality defect exampleAs a care professional I want to see my route list for next/future days, so that I can
prepare myself (for example I can see at what time I should start traveling)
⬇1. As a Care Professional, I want to see my route list for next/future days, so that I can
prepare myself2. As a Manager, I want to upload a route list for care professionals
split
Example 2 - estimatable
Garm Lucassen25 April 2016 53
Set: conflict-freeA user story should not be inconsistent with any other user story
Quality defect example1. As a User, I’m able to edit any landmark
2. As a User, I’m able to delete only the landmarks that I added
⬇
Example 3 - conflict-free
Garm Lucassen25 April 2016 54
Set: conflict-freeA user story should not be inconsistent with any other user story
Quality defect example1. As a User, I’m able to edit any landmark
2. As a User, I’m able to delete only the landmarks that I added
⬇1. As a User, I’m able to edit landmarks that I added
change 1
Example 3 - conflict-free
Garm Lucassen25 April 2016 55
Set: independentThe user story is self-contained and has no inherent dependencies on other stories
Quality defect example1. As an Administrator, I am able to add a new person to the database
2. As a Visitor, I am able to view a person’s profile
⬇ ???
Example 4 - independent
Garm Lucassen25 April 2016 56
Quality defect example1. As an Administrator, I am able to add a new person to the database
2. As a Visitor, I am able to view a person’s profile
⬇ ???
Example 4 - independent
• Try to avoid dependencies as much as possible
• Impossible to be fully independent
• Add relates to in Jira
• But… always remain flexible!
Garm Lucassen25 April 2016 57
Set: uniqueEvery user story is unique, duplicates are avoided
Quality defect example1. As a Visitor, I’m able to see a list of news items, so that I stay up to date 2. As a Visitor, I’m able to see a list of news items, so that I stay up to date
⬇1. As a Visitor, I’m able to see a list of news items, so that I stay up to date
remove one
Example 5 - unique
Developing software
58
Developing software
59
1. Complete 2. Conflict-free 3. Independent 4. Unambiguous
Garm Lucassen25 April 2016 60
Set: completeImplementing a set of user stories creates a feature-complete application, no steps are
missing
Quality defect example1. As an Organizer, I want to update an event2. As an Organizer, I want to delete an event
⬇As an Organizer, I want to create an event
add story
Example 1 - complete
61
IndividualWell-formed A user story includes at least a role and an actionAtomic A user story expresses a requirement for exactly one featureMinimal A user story contains nothing more than role, action and benefit Conceptually sound The action expresses a feature and the benefit expresses a rationaleProblem-oriented A user story only specifies the problem, not the solution to itUnambiguous A user story avoids terms or abstractions that lead to multiple interpretationsFull sentence A user story is a well-formed full sentenceEstimatable A story does not denote an unrefined requirement that is hard to plan and prioritize
SetConflict-free A user story should not be inconsistent with any other user story Unique Every user story is unique, duplicates are avoidedUniform All user stories in a specification employ the same templateIndependent The user story is self-contained and has no inherent dependencies on other storiesComplete Implementing a set of user stories creates a feature-complete application, no steps are missing
Questions so far?
Pied piper Examples
62
Garm Lucassen25 April 2016
Pied piper Examples• Pretty good overall!
• Some apparent minor issues:
• minimality
• atomicity
• well-formed
63
Garm Lucassen25 April 2016
Pied piper ExamplesWell-formed:
• Being able to sort on amount of review stars on stream page and search page
• Upgrade to Nodejs 4.x on accept (?)
• Query property model to see where we changed preferred fps for migrated properties, so we know how many separated specs need to be created/
• Why do you (sometimes) put user stories below the title?
64
Garm Lucassen25 April 2016
User story in title/summary?• Pro:
• Findable • Standard structure (consistent, mental effort) • Works with the Grimm tool :-) • Clear distinction between technical and functional stories • less repetition
• Con: • Can be a bit long • …?
• You don’t have to, but try to agree on one format!
65
Garm Lucassen25 April 2016
Pied piper Examples
Minimal:• As a Product Owner, I want to test if the new
implementation of the film information on the search- and stream pages is actually faster -> does this save us up to 25% of the page load times?
• Don't break the stream page when rename a property (option) value
66
Garm Lucassen25 April 2016
Pied piper Examples
Atomic:
• As a Movie Curator I want to be able to view average outcomes and set a filter
• As an admin I want to define the default app to start after login and assign to toolbar home- icon
67
Garm Lucassen25 April 2016
Pied piper Examples• More advanced, major issues:
• problem-oriented
• conceptually sound
• unambiguous
• conflict-free
• unique
• uniform
• independent
• complete
68
Garm Lucassen25 April 2016
Pied piper Examples
Problem-oriented:
• As a Visitor I want to have smaller icons in the apps-menu so I don't have to scroll everytime
• As a Movie Curator I want to be able to view average outcomes and set a filter
69
Garm Lucassen25 April 2016
Pied piper ExamplesConceptually sound & problem oriented:
• As a developer I need a way to resync failed items to the filmservice without having to manually filtering the deadletter queue and force a sync queries because .. its faster.
• As a Movie Curator, I want to have average outcomes presented in a graph, so that I can monitor my movies on averages.
• As a Movie Viewer, I want reminder emails to be switched on by default, so that I get notified when a new movie is released.
70General advice: include the ‘why’ more often
Garm Lucassen25 April 2016
Pied piper ExamplesUnambiguous:
• As a Conversion Manager I want movies that have a new studio to be visible as filter options when I've created them, so the customer can filter on these options.
• As a Movie Viewer, I want a more comprehensible menu which shows more options than now, so using the app is easier
71
Garm Lucassen25 April 2016
Pied piper ExamplesConflict-free:
• ??
Independent:
• ??
Complete:
• ??72
Workshop
73
Garm Lucassen25 April 2016
Time to do it yourself!• Review user stories of the next two sprints as a
refinement session
• Make use of materials:
• QUS poster
• Grimm cheat sheet
• Grimm flyer
• Garm will not participate
75
Digital materials: bit.ly/grimm-stories
Garm Lucassen25 April 2016
Don’t be dogmatic, stay agile!
76
Garm LucassenREFSQ’16 March 17 2016
Thank you!
77
Questions
78