Grimm User Stories - Introductory Presentation

Preview:

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: g.lucassen@uu.nl

• 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

Workshop

74

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

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

Recommended