45
User Stories 21st Century Requirements

Effective User Stories

Embed Size (px)

DESCRIPTION

Writing effective user stories.

Citation preview

Page 1: Effective User Stories

User Stories21st Century Requirements

Page 3: Effective User Stories

What Makes a Story?

ConversationDetails behind the story come out during conversations with the product owner.

CardStories are traditionally written on note cards and they may be annotated with notes, estimates, etc.

ConfirmationAcceptance tests confirm the story was coded correctly

Page 4: Effective User Stories

What Is a Story Card?

Short description of user- or customer-valued functionality. The visible part of a story, but the important parts are the conversations between the customer and

Page 5: Effective User Stories

Who writes a story card?

The customer team writes the story cards because they are in the best position to express the desired features and because they must later be able to work out story details with developers and to prioritize the stories.

The customer team includes those who ensure that the software will meet the needs of its intended users. This may include testers, product manager, real users and interaction designers.

Page 6: Effective User Stories

Why User Stories?

Emphasize verbal communication

Understood equally well by everyone

Useful for iteration planning

Great for iterative development

Encourage deferring of details

Support opportunistic design

Emphasize verbal communication

Understood equally well by everyone

Useful for iteration planning

Great for iterative development

Encourage deferring of details

Support opportunistic design

Page 7: Effective User Stories

POp Quiz!1. What are the three parts of a user story?

2.Who is on the customer team?

3.What advantages do requirements

conversations have over requirements

documents?

Page 8: Effective User Stories

User Story Templates

As a <type of user>I want to <goal>so that <reason>

In order to <value>as a <customer role>I want <some feature>

As a vacationer,I want to see photos of hotel rooms,so that I can see which have the nicest rooms

In order to determine which rooms are the nicest,as a vacationer,I want to see photos of hotels

Page 9: Effective User Stories

What Makes a Good Story?

I

N

V

E

S

T

Independent

Negotiable

Valuable

Estimatable

Sized Appropriately

Testable

Page 10: Effective User Stories

What Makes a Good Story?

I Independent

Dependencies lead to problems estimating and prioritizing. Ideally you can work on a single story without pulling in lots of other stories.

Page 11: Effective User Stories

What Makes a Good Story?

Stories are not contracts, they leave (or imply) some flexibility.

N Negotiable

Page 12: Effective User Stories

What Makes a Good Story?

Valuable to users or customers, not developers. Rewrite developer stories to reflect value to users or customers.

V Valuable

Page 13: Effective User Stories

What Makes a Good Story?

We need to be able to estimate our user stories so that we can use them to create a plan.

E Estimatable

Page 14: Effective User Stories

What Makes a Good Story?

A story is sized appropriately when it can be completed in one iteration.

S Sized Appropriately

Page 15: Effective User Stories

What Makes a Good Story?

You should have an easy and binary way of knowing when a story is finished. Done or not done; not partially finished or “done... except...”

T Testable

Page 16: Effective User Stories

POP QUIZ!

The user can run the system on Windows and Linux

All graphing and charting will be done using a 3rd party library

The user can undo up to fifty commands

The software will be released on June 30th

Find the bad user stories:

Page 17: Effective User Stories

Workshop #1

In teams of 3 to 4 write at least 15 user stories for a travel website.

20mActivity Time

Page 18: Effective User Stories

Consider all types of users in a system. Avoid writing stories from a single perspective by first identifying different user roles that will interact with the system.

Define relevant attributes for each user role, to better see the differences between roles. Some roles do well with a persona, an imaginary representation of a user role.

User Role Modeling

Page 19: Effective User Stories

User Role Modeling Steps

1.Brainstorm an initial set of user roles

2.Organize the Initial Set

3.Consolidate Roles

4.Refine the Roles

Page 20: Effective User Stories

Refining Roles with AttributesThe frequency with which the user will use the software.The user’s level of expertise within the domain.The user’s general level of proficiency with computers and software.The user’s level of proficiency with the software being developed.The user’s general goal for using the software. Some users are after convenience, others favor a rich experience, and so on.

Page 21: Effective User Stories

User Role Example

User Role: Internal RecruiterNot particularly computer-savvy but quite adept at using the Web. Will use the software infrequently but intensely. Will read ads from other companies to figure out how to best word her ads. Ease of use is important, but more importantly what she learns must be easily recalled months later.

Page 22: Effective User Stories

Workshop #2

In teams of 3 to 4 first identify user roles for a travel website. Next, refine those roles using attributes.

20mActivity Time

Page 23: Effective User Stories

How do we gather user stories?User Interviews

Real users with different roles are best. What they ask for is not always what they want

QuestionnairesGood for large groups of users but not a great primary technique

ObservationHelpful for determining how users interact with existing systems

Story-Writing WorkshopsIncludes developers, users, customers and others. Brainstorm to generate as many stories as possible.

Integrum Tip:Ask open-ended and context-free questions. “How would you like to search for jobs?” vs. “Will you search for jobs by title?”

Page 24: Effective User Stories

Trawling for Requirements

The idea of eliciting and capturing requirements is wrong. It assumes that we already know all requirements and that they won’t change.

Instead, think of trawling for requirements. This acknowledges that requirements are of different sizes and that they change over time.

Trawling for Requirements

Page 25: Effective User Stories

Workshop #3

In teams of 3 to 5 first designate one team member as the product owner. Next, run a story workshop for a pet adoption website.

25mActivity Time

Page 26: Effective User Stories

User ProxiesThe User’s Manager

May not be appropriate unless they are also a user

Development ManagersSeemingly a good user proxy due to their involvement, but they’re almost never the intended user

CustomersBest if they are in close communication with the users for whom they are purchasing the software. Even better if they are also a user

SalespeopleVery helpful if they have contact with a broad variety of customers, but avoid features that could have won the last lost sale

Domain ExpertsAvoid stories that require a user to be at their level of expertise

The Marketing GroupQuality stories vs. Quantity of stories

Page 27: Effective User Stories

Customer Team1. Add real users2. Identify a product champion3. Determine the factors critical to

success

Integrum Tip:A real user beats a proxy user every time.

What problems might occur when using a proxy user?

Page 28: Effective User Stories

Workshop #4

In teams of 3 to 5, each team member should choose a user proxy role. Next, briefly interview each user proxy using the travel website product. Finally, gather shortcomings and possible improvements when using user proxies.

20mActivity Time

Page 29: Effective User Stories

Where are the Details?

As a user, I want to cancel a reservation

Is confirmation provided to the user? How?

Does the user get a full or partial refund? Is it a

refund or site credit?

How far ahead must the reservation be cancelled?

Is the process the same for all hotels?

Are the terms different for members of the frequent

travelers club?

How late can the user cancel the reservation?

Page 30: Effective User Stories

Details Added as Smaller STories

As a user, I want to cancel a reservation

As a premium member, I can cancel a reservation up to the last minute

As a non-premium member, I can cancel a reservation up to 24 hours in advance

As a user I am e-mailed a confirmation when I cancel a reservation

Page 31: Effective User Stories

Details as Conditions of Satisfaction

As a user, I want to cancel a reservation

Verify that a premium member can cancel the same day without a fee

Verify that a premium member is charged 10% for same day cancellation

Verify that an e-mail confirmation is sent

Verify that the hotel is notified of the cancellation

Conditions of Satisfaction

Page 32: Effective User Stories

Details as Acceptance CriteriaAs a VP of Marketing, I want to see information on television advertising when viewing historical campaigns

See how many viewers by age range

See how many viewers by income level

See how many viewers by gender

Acceptance Criteria

Integrum Tip:Ensure that your conditions of satisfaction or acceptance acceptance criteria help further define “done.”

Page 33: Effective User Stories

Acceptance Testing

Acceptance tests are used to express the many details that result from conversations between customers and developers.

User interface testingUsability testingPerformance TestingStress Testing

Other Types of Tests

Page 34: Effective User Stories

User Workflow Scenarios

As a user, I want to cancel a reservation

When I am viewing my reservationI should see a button to cancel my reservationWhen I click the ‘cancel reservation’ button

I should see a confirmation dialog

How far ahead must the reservation be cancelled?

When I am viewing my reservation more than 24 hours in advance...

When I am viewing my reservation less than 24 hours in advance...

Integrum Tip:Draw out simple wireframes to explain each step in the user workflow.

Page 35: Effective User Stories

Using Given, Then, When

As a user, I want to cancel a reservation

Given I am viewing my reservationWhen I click the ‘cancel reservation’ buttonThen I should see a confirmation dialog

The right details?

Given I am viewing my reservationWhen I cancel my reservationThen I should be prompted to confirm

Are fewer details better?

“If you really care about how the behaviour is implemented, you should probably be specifying that elsewhere in a more fine-grained story – in other words chunking down to provide more detail – that won’t be interesting to the audience of this one. If not, you might want to push the detail down into the implementation of the steps.” - Dan North

Page 36: Effective User Stories

Acceptance Testing Questions

As a user, I want to cancel a reservation

What else to programmers need to know about this story?

What am I assuming about how this story

will be implemented?

What can the user do incorrectly to make this

story not work as expected?

Are there circumstances when this story may behave differently?

What can go wrong during the story?

What does the user see during each step of the

story?

Page 37: Effective User Stories

Workshop #5

In teams of 3 to 5, pick one to two stories from a previous workshop. Next, generate user workflow scenarios or given, when, then scenarios for each.

20mActivity Time

Page 38: Effective User Stories

Types of User Stories

EpicA large user story

ThemeA collection of related user stories

ThemeA collection of related user stories

ThemeA collection of related user

ThemeA collection of related user

Story Story

Story

Page 39: Effective User Stories

The Backlog Iceberg

EpicA large user story

ThemeA collection of related user stories

ThemeA collection of related user

Story

StorySprint

Release

Future Releases

Page 40: Effective User Stories

Epics, Themes and Stories

As a VP Marketing, I want to review the performance of historical promotional campaigns so that I can identify and repeat profitable ones.

Epic

As a VP Marketing, I can select which type of campaigns (dm, tv, email, radio, etc) to include when reviewing the performance of historical promotional campaigns.

Smaller Epic

As a VP Marketing, I want to see information on direct malings when reviewing historical campaigns so that ...

More Detailed

As a VP Marketing, I want to see information on television advertising when reviewing historical campaigns so that.....

More Detailed

Page 41: Effective User Stories

Breaking down Epics

Frequent Flyer

As a frequent flyer I want to check my account

As a frequent flyer I want to book a trip

As a frequent flyer I want to...

As a frequent flyer I want to book my trip using miles

As a frequent flyer I want to re-book a frequent trip

As a frequent flyer I want to request an upgrade

As a frequent flyer I want to see special promotions

Page 42: Effective User Stories

Workshop #6

In teams of 3 to 5, first identify stories from a previous workshop which are too large. Next, breakdown the large stories into smaller more fine-grained stories.

20mActivity Time

Page 43: Effective User Stories

Tips for Writing good StoriesTo identify stories, start by considering the goals of each user role in using the system.

When splitting a story, try to come up with stories that cut through all layers of the application.

Create constraint cards and tape to wall or write tests to ensure they are not violated.

Write smaller stories for functionality that will soon be implemented and broad stories for functionality further out.

Keep the user interface out of the stories for as long as possible.

When practical, include the user role when writing the story.

Write stories in active voice.

Write stories for a single user.

Have the customer, rather than the developer, write the story.

Keep stories short, and do not forget their purpose as reminders to hold conversations.

Don’t number stories.

Page 44: Effective User Stories

Smelly User Stories

Stories are too smallInterdependent storiesGold plated storiesToo many detailsSplitting too many storiesIncluding user interface details too soonThinking too far aheadTrouble prioritizingCustomer won’t write and prioritize stories

Page 45: Effective User Stories

Workshop #7

In teams of 3 to 5, first gather stories you’ve generated from previous workshops. Next, identify good and bad user stories and note how they differ.

20mActivity Time