User Story Workshop

25
©2008 Protegra Inc. All rights reserved. User Story Workshop Zero Sit on the Left User Story Experience Seating Plan Lots Sit on the right In between Sit in the middle Steve Rogalsky

description

User stories are core to many agile methodologies but are often misunderstood by those new to agile. However, proper user stories are important for planning, scoping, delivering value, and change management. This hands-on event will be spent creating, evaluating, and hopefully improving our own user story skills. Bring post-its and sharpies. The video for this presentation is available here: http://vimeo.com/33850718

Transcript of User Story Workshop

Page 1: User Story Workshop

©2008 Protegra Inc. All rights reserved.

User Story Workshop

Zero Sit on the Left

User Story Experience

Seating Plan

Lots Sit on the right

In between Sit in the middle

Steve Rogalsky

Page 2: User Story Workshop

2

1. Describe the characteristics of a good user story

2. Be able to write a good user story

Learning Outcomes

Page 3: User Story Workshop

Example Scenario

Social Recipe Site• Amir (our hero) loves to cook and tell everyone about his

culinary prowess. His little known secret is that he uses a web site in order to search for, rate, and select popular recipes. He likes that he can search for recipes by popularity and type so that he can impress his guests. He also appreciates that he can privately annotate and comment on recipes that he has tried so that he can keep track of which recipes were popular with his guests and also so that he doesn’t repeat that recipe for the same guest at a later date.

Develop a list of interesting things the system could do to provide some kind of value to an end user like Amir.• (Think quantity, not quality)

3

Page 4: User Story Workshop

Why User Stories

Frequent Delivery Mechanism

4

Page 5: User Story Workshop

Why User Stories

Outcome based• But… still allow you to calculate, estimate,

and budget based on output

5

Page 6: User Story Workshop

Why User Stories

They are Light weight• Focus on scope not detail

6

Page 7: User Story Workshop

Why User Stories

Placeholder for a conversation• Documents are not a great tool for

common understanding so we tell stories.• The key is the conversation that occurs.• The story is a record/pointer/reminder of

that conversation.• Create them together, not in isolation

7

Page 8: User Story Workshop

Why User Stories

They are Boundary objects• They contain scope

8

Page 9: User Story Workshop

Why is it important to write good user stories?

As an office worker, I want to send an e-mail so that my co-workers can have a full inbox.

9

Page 10: User Story Workshop

Why is it important to write good user stories?

As an office worker, I want to send an e-mail so that my co-workers can have a full inbox.

10

Page 11: User Story Workshop

Formats

Traditional• As a [role], I want to [some action], so that

[goal/result]• [who] [what]

[why]- This format is a great thinking tool

Reverse (start with why)• In order to [goal/result], as a [user], I want to

[some action]• [why] [who]

[what]11

Page 12: User Story Workshop

Formats

• A Bad Example- As a CFO I want more features so that we can make

more revenue

12

Page 13: User Story Workshop

Formats

Other• Title / Sentence / Acceptance Tests• Card / Conversation / Confirmation• Feature [X] will move metric [Y] - Lean

Startup

13

Page 14: User Story Workshop

Example Scenario

Social Recipe Site• Mark (our hero) owns and operates a small

town catering business. He regularly posts recipes on the site and some of his popular recipes have earned him free product as a thank you from suppliers such as Kraft. He has started to diversify his recipe submissions to reach a wider audience and likes to view his submission dashboard to see real time updates of his recipe popularity and comments.

14

Page 15: User Story Workshop

INVEST – IndependentDon’t mix priorities; try to make the order of development un-important

• Bad- As a recipe contributor, I want a dashboard that shows

my recipes, ratings, and comments so that I can find this information in one place.

• Good- As a recipe contributor, I want to see a list of the

recipes that I have contributed so that I can select one for editing or reviewing.

- As a recipe contributor, I want to see the comments for each of my recipes so that I can respond to any questions.

- As a recipe contributor, I want to see the ratings for each of my recipes so that I can improve my contributions.

15

Page 16: User Story Workshop

INVEST – NegotiableAllow room for the team to have control over the solution

• Bad…- As a recipe contributor, I want to post recipes

including title, description, instructions, pictures and a list of attributes to choose from multi-select list boxes such as season, culture, time to prep, recipe size, estimated cost so that my recipes can be displayed in targeted search results.

• Good- As a recipe contributor, I want to post basic recipe

and photo information with searchable fields so that users can find and view my recipe.

- As a recipe contributor, I want to set attributes for my recipes so that it can be displayed in targeted search results.

16

Page 17: User Story Workshop

INVEST – ValuableOnce complete, the story provides value to a user or stakeholder

• Bad- As a developer, I want to create a recipe

database table, so that I can store recipe details

- As a developer, I want to call a recipe web service to retrieve recipe details

- As a developer, I want to create the recipe list UI.

• Good- As a recipe contributor, I want to see a list of

the recipes that I have contributed so that I can select one for editing or reviewing.

17

Page 18: User Story Workshop

INVEST – EstimableWe understand it well enough to be able to estimate it (relatively)

• Bad- As a website owner, I want the website to be

secure so that I don’t have angry customers• Good

- As a recipe contributor, I want to be the only one who can edit my recipes so that I have confidence in the site.

18

Page 19: User Story Workshop

INVEST – SmallToo big is hard to estimate, too small is too detailed

• Bad- As a recipe contributor I want to see stats so that I can

understand which of my recipes are the most effective- As a recipe contributor I want the submitted date time

for each recipe to be set automatically• Good

- As a recipe contributor I want to see the number of views per recipe per day for each of my recipes so that I can understand which of my recipes are the most effective.

19

Page 20: User Story Workshop

INVEST – TestableWe can define tests that help us understand when it is done

• Bad- As a website owner I want to the site to be useable so that I can

enter recipes easily• Good

- Option 1: Using tests to define “usable”• As a recipe contributor, I want to post basic recipe and photo

information that allows users to search for and view my recipe.- Test: Recipes should be entered within 30 seconds 80% of the time.

- Option 2: Write a usability user story (this story might be created later in a product

lifecycle – after the site is already live):• As a website owner I want the recipe contribution functionality

to be rated at least 4.2/5 on a usability survey so that I am confident that recipes can be entered easily.

- Option 3: Lean Startup• Feature [simplify recipe entry] will move metric [% of recipe

contributors that complete their contributions]

20

Page 21: User Story Workshop

Non Functional Requirements/Constraints

Some tips:• Create a check list of constraints that each

story is compared against• Write them as tests• Sometimes they can be written as stories

- (examples as above with security, usability)

21

Page 22: User Story Workshop

Details, details, details

Add details later – just in time• It is ok and common to record a few things

about each story at the beginning:- A few bullets on the types acceptance tests- Constraints (non-functional requirements)- A few drawings- Etc

• Add and confirm details later once the story has been selected as one of the next few to be delivered.

22

Page 23: User Story Workshop

Last Thoughts on User Stories

• Stories shrink in size and grow in detail over time.

• Planning Poker helps you make sure your stories are INVEST; They also add to the conversation.

23

Page 24: User Story Workshop

Revisiting the first example

• Self correct your original statements using INVEST and one of these formats (5 minutes):- As a [user] I want to [some action] so

that [goal/result] - In order to [goal/result], as a [user], I

want to [some action]• Review your corrections as a group (5

minutes)• Large Group Discussion (10 minutes)

24

Page 25: User Story Workshop

25

1. Communicate!2. INVEST

I - IndependentN - NegotiableV - ValuableE - EstimableS - SmallT - Testable

3. Scope statements

User Stories

winnipegagilist.blogspot.com

@srogalsky [email protected]

blog.protegra.com

To Summarize