78
Grimm User Stories Garm Lucassen, 25 April 2016

Grimm User Stories - Introductory Presentation

Embed Size (px)

Citation preview

Page 1: Grimm User Stories - Introductory Presentation

Grimm User StoriesGarm Lucassen, 25 April 2016

Page 2: Grimm User Stories - Introductory Presentation

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

Page 3: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016 3

Page 4: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

Who am I?

4

Page 5: Grimm User Stories - Introductory Presentation

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

Page 6: Grimm User Stories - Introductory Presentation

What is the Grimm Method?

6

Page 7: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

The Brothers Grimm

7

Cinderella The Frog PrinceHansel and Gretel

• 1806: start collecting the best German folk tales

Page 8: Grimm User Stories - Introductory Presentation

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

Page 9: Grimm User Stories - Introductory Presentation

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

Page 10: Grimm User Stories - Introductory Presentation

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, , )

Page 11: Grimm User Stories - Introductory Presentation

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)

Page 12: Grimm User Stories - Introductory Presentation

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”

, ,

Page 13: Grimm User Stories - Introductory Presentation

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

Page 14: Grimm User Stories - Introductory Presentation

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

Page 15: Grimm User Stories - Introductory Presentation

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?

Page 16: Grimm User Stories - Introductory Presentation

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

Page 17: Grimm User Stories - Introductory Presentation

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

Page 18: Grimm User Stories - Introductory Presentation

Fostering conversation surrounding user stories

18

Page 19: Grimm User Stories - Introductory Presentation

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

Page 20: Grimm User Stories - Introductory Presentation

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

Page 21: Grimm User Stories - Introductory Presentation

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

Page 22: Grimm User Stories - Introductory Presentation

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

Page 23: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

In practice

Individuals that are not responsible for creating user stories are unable or unwilling to voice their concerns

23

Page 24: Grimm User Stories - Introductory Presentation

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

Page 25: Grimm User Stories - Introductory Presentation

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?

Page 26: Grimm User Stories - Introductory Presentation

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?

Page 27: Grimm User Stories - Introductory Presentation

Quality User Story Framework

27

Page 28: Grimm User Stories - Introductory Presentation

28

User Story Quality

Pragmatic

Complete Independent Uniform UniqueEstimatable Full sentence

Semantic

Conflict-free UnambiguousProblem-oriented Conceptually sound

SyntacticMinimal Atomic Well-formed

Page 29: Grimm User Stories - Introductory Presentation

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

Page 30: Grimm User Stories - Introductory Presentation

1. Creating user stories 2. Poker planning 3. Developing software

30

Page 31: Grimm User Stories - Introductory Presentation

1. Creating user stories

31

Page 32: Grimm User Stories - Introductory Presentation

1. Creating user stories

32

1. Well-formed 2. Atomic 3. Minimal 4. Uniform 5. Conceptually sound 6. Problem oriented 7. Full sentence

Page 33: Grimm User Stories - Introductory Presentation

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

Page 34: Grimm User Stories - Introductory Presentation

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

Page 35: Grimm User Stories - Introductory Presentation

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

Page 36: Grimm User Stories - Introductory Presentation

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

Page 37: Grimm User Stories - Introductory Presentation

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

Page 38: Grimm User Stories - Introductory Presentation

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

Page 39: Grimm User Stories - Introductory Presentation

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)

Page 40: Grimm User Stories - Introductory Presentation

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

Page 41: Grimm User Stories - Introductory Presentation

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”

Page 42: Grimm User Stories - Introductory Presentation

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

Page 43: Grimm User Stories - Introductory Presentation

Grimm Tool

43

Page 44: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

Grimm Tool• Automatically detects simple errors:

well-formed, atomic, minimal, uniform, duplicates

• Integrates with Jira - automatically posts comments

44

Page 45: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

Grimm Tool

45

Page 46: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

Grimm Tool

46

Page 47: Grimm User Stories - Introductory Presentation

Poker planning

47

Page 48: Grimm User Stories - Introductory Presentation

Poker planning

48

1. Unambiguous 2. Estimatable 3. Conflict-free 4. Independent 5. Unique

Page 49: Grimm User Stories - Introductory Presentation

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

Page 50: Grimm User Stories - Introductory Presentation

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

Page 51: Grimm User Stories - Introductory Presentation

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

Page 52: Grimm User Stories - Introductory Presentation

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

Page 53: Grimm User Stories - Introductory Presentation

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

Page 54: Grimm User Stories - Introductory Presentation

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

Page 55: Grimm User Stories - Introductory Presentation

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

Page 56: Grimm User Stories - Introductory Presentation

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!

Page 57: Grimm User Stories - Introductory Presentation

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

Page 58: Grimm User Stories - Introductory Presentation

Developing software

58

Page 59: Grimm User Stories - Introductory Presentation

Developing software

59

1. Complete 2. Conflict-free 3. Independent 4. Unambiguous

Page 60: Grimm User Stories - Introductory Presentation

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

Page 61: Grimm User Stories - Introductory Presentation

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?

Page 62: Grimm User Stories - Introductory Presentation

Pied piper Examples

62

Page 63: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

Pied piper Examples• Pretty good overall!

• Some apparent minor issues:

• minimality

• atomicity

• well-formed

63

Page 64: Grimm User Stories - Introductory Presentation

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

Page 65: Grimm User Stories - Introductory Presentation

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

Page 66: Grimm User Stories - Introductory Presentation

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

Page 67: Grimm User Stories - Introductory Presentation

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

Page 68: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

Pied piper Examples• More advanced, major issues:

• problem-oriented

• conceptually sound

• unambiguous

• conflict-free

• unique

• uniform

• independent

• complete

68

Page 69: Grimm User Stories - Introductory Presentation

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

Page 70: Grimm User Stories - Introductory Presentation

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

Page 71: Grimm User Stories - Introductory Presentation

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

Page 72: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

Pied piper ExamplesConflict-free:

• ??

Independent:

• ??

Complete:

• ??72

Page 73: Grimm User Stories - Introductory Presentation

Workshop

73

Page 74: Grimm User Stories - Introductory Presentation

Workshop

74

First a short survey… http://bit.ly/story_survey

Page 75: Grimm User Stories - Introductory Presentation

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

Page 76: Grimm User Stories - Introductory Presentation

Garm Lucassen25 April 2016

Don’t be dogmatic, stay agile!

76

Page 77: Grimm User Stories - Introductory Presentation

Garm LucassenREFSQ’16 March 17 2016

Thank you!

77

Page 78: Grimm User Stories - Introductory Presentation

Questions

78