60
Effective User Stories Andrew Rusling Agile Coach @andrewrusling

Effective user stories for your agile or Scrum team

Embed Size (px)

DESCRIPTION

What are User Stories? How should we write them? How to write them well? Effective User Stories allow your team to be effective (deliver want the User needs) and efficient (Deliver it quickly and importantly don't deliver unneeded features).

Citation preview

Page 1: Effective user stories for your agile or Scrum team

Effective User Stories

Andrew RuslingAgile Coach

@andrewrusling

Page 2: Effective user stories for your agile or Scrum team

2WARNING, WARNING, WARNING

Pre-reading these slides will significantly damage the learning opportunity for yourself.

This training material is designed to be delivered in a class room situation, with activities and discussion.

If you intend to attend this training, please do not read past the competencies slide (4).

Page 3: Effective user stories for your agile or Scrum team

3Contents

1. Why

2. What

3. INVEST

4. Getting to Done

5. Re-writing

6. Backlog health

7. Wrap up

Page 4: Effective user stories for your agile or Scrum team

4Competencies to be gained

At the end of this session I hope that you will be able to:

• Summarise why User Stories are used for Agile Software Development

• Describe the key elements of a User Story

• Write out one of two common templates for User Stories

• Summarise how User Story text and Acceptance Criteria differ

• List the three C's

• Compare user stories based on the strength of their INVEST properties

• List the four items that are necessary for a story to be Done

• Write User Stories based on a detailed request

• Re-write poor User Stories into Effective User Stories

• Identify a healthy backlog

• List several ways a backlog can become unhealthy

• Identify an unhealthy backlog

Page 5: Effective user stories for your agile or Scrum team

5

Why

Page 6: Effective user stories for your agile or Scrum team

6Agile Software Development

Agile values and principles

• Business people working daily with the team

• Frequent deliveries of working software

• Frequent feedback

• Embrace change

Page 7: Effective user stories for your agile or Scrum team

7Agile Requirements

Agile needs an approach to requirements, that is:

• Lightweight

• Change friendly

• Collaborative

Page 8: Effective user stories for your agile or Scrum team

8

What

Page 9: Effective user stories for your agile or Scrum team

9User Stories

Persona – Type of User, potentially described as an imaginary person.

Goal – Change / Functionality / Action, how we intend for the software to change.

Business Benefit – Either directly beneficial to the business, or implied benefit to the business by impacting the behaviour of the Persona.

Re-enforcing elements

As a [PERSONA]

I want [GOAL]

So that [BUSINESS BENEFIT]

Title

In order to [BUSINESS BENEFIT]

As a [PERSONA]

I want [GOAL]

Title

Page 10: Effective user stories for your agile or Scrum team

10An example

As a Bank Branch Manager

I want to be able to authorize loans to a higher financial limit than Bank Tellers

So that I can minimize financial risk and allow for high value loans at the same time

Authorize loans

Page 11: Effective user stories for your agile or Scrum team

11The three C’s

Card

• Promise for a conversation• Token (Visual, Tangible)• Story on front• Acceptance Criteria on back

Conversation

• PO and Team• With customer• Elaborate details

Confirmation

• PO verification• Automated tests

Page 12: Effective user stories for your agile or Scrum team

12User Stories are NOT

• Items that get ‘approved’

• Detailed Requirements

• Use Cases

Page 13: Effective user stories for your agile or Scrum team

13

INVEST

Page 14: Effective user stories for your agile or Scrum team

14INVEST by Bill Wake

• Of order of user story delivery• Of internal and especially external dependenciesIndependent

• Flexible scope• None specific language• Explain the intention, not the implementation

Negotiable

• Value is clear to everyone• Persona matches Benefit & Goal will deliver the benefit.• Avoid technical / role specific language

Valuable

• Clear and concise explanation• Avoid technical / role specific languageEstimatable

• Easily fits into a Sprint. i.e. < 20% of velocity.• Definitely not > 33% of velocitySmall

• Can be automated• Avoid external testing / long test suitesTestable

Page 15: Effective user stories for your agile or Scrum team

15Compromises are necessary

Big stories are usually:

• Independent

• Negotiable

• Valuable

but not

• Estimable

• Testable

• Small.

They may also contain gold plating.

Non Negotiable stories are usually, Estimable & Testable

Splitting into Smaller stories, may reduce Value and increase dependencies (especially if split poorly).

Page 16: Effective user stories for your agile or Scrum team

16

Exercise

INVESTing

Page 17: Effective user stories for your agile or Scrum team

INVESTing in our Stories

As a top tier player of Towering InfernoI might need a total score in excess of the current limit of 9999. I would like this limit raising to one million So that I can obtain a huge total score.

As a top tier player of Towering InfernoI would like the total score limit raised from 9999 to 1 million So that I can obtain a huge total score.

As a top tier player of Towering InfernoI would like the total score limit raised to one million So that the artificial limit of 9999 does not hinder my enjoyment of the game

Page 18: Effective user stories for your agile or Scrum team

INVESTing in our Stories

As a top tier player of Towering InfernoI might need a total score in excess of the current limit of 9999. I would like this limit raising to one million So that I can obtain a huge total score.

As a top tier player of Towering InfernoI would like the total score limit raised from 9999 to 1 million So that I can obtain a huge total score.

As a top tier player of Towering InfernoI would like the total score limit raised to one million So that the artificial limit of 9999 does not hinder my enjoyment of the game

‘So that’ duplicates the ‘I want’, is less concise then middle story.

‘So that’ explains the business value for the change

Page 19: Effective user stories for your agile or Scrum team

INVESTing in our Stories

As a fan of South ParkI want a mini game feels like ten pin bowling with the main charactersSo that I can have a laugh at some of their crazy antics, that are different to the main game.

As the project teamI want a prototype with 1st cut art of a humorous South Park game (no mini games needed)So that we can determine if the project is worth proceeding with

As a fan of South ParkI want a humorous South Park themed game, that includes a couple of difficult mini gamesSo that I can play a game that challenges and entertains me

Page 20: Effective user stories for your agile or Scrum team

INVESTing in our Stories

As a fan of South ParkI want a mini game feels like ten pin bowling with the main charactersSo that I can have a laugh at some of their crazy antics, that are different to the main game.

As the project teamI want a prototype with 1st cut art of a humorous South Park game (no mini games needed)So that we can determine if the project is worth proceeding with

As a fan of South ParkI want a humorous South Park themed game, that includes a couple of difficult mini gamesSo that I can play a game that challenges and entertains me

This is the smallest story

This is a HUGE story.

This is a BIG story.

Page 21: Effective user stories for your agile or Scrum team

INVESTing in our Stories

As a Towering Inferno Game ManagerI want to be able to set bonus amounts by player tier in the weekly draw So that I can encourage our top tier players to keep playing

As a Towering Inferno Game ManagerI want the weekly bonus amounts to be configured in WeeklyBonusAmounts table in the databaseSo that I can encourage our top tier players to keep playing

As a top tier player of Towering InfernoI want to receive a larger bonus than low tier players in the weekly drawSo that I feel I am valuable player, that the game values

Page 22: Effective user stories for your agile or Scrum team

INVESTing in our Stories

As a Towering Inferno Game ManagerI want to be able to set bonus amounts by player tier in the weekly draw So that I can encourage our top tier players to keep playing

As a Towering Inferno Game ManagerI want the weekly bonus amounts to be configured in WeeklyBonusAmounts table in the databaseSo that I can encourage our top tier players to keep playing

As a top tier player of Towering InfernoI want to receive a larger bonus than low tier players in the weekly drawSo that I feel I am valuable player, that the game values

Specifies implementation

No implementation details, has real business value

Not a good business value, everyone wants to be paid more.

Page 23: Effective user stories for your agile or Scrum team

INVESTing in our Stories

As the Product OwnerI want API documentation in the same format as Twitter API documentsSo that it is easy to get started with the Data Mangler service

As a Data AnalystI want API documentation for the Data Mangler serviceSo that it is easy to get started using it

As a Data AnalystI want API documentation in the same format as Twitter API documentsSo that it is easy to get started with the Data Mangler service

Page 24: Effective user stories for your agile or Scrum team

INVESTing in our Stories

As the Product OwnerI want API documentation in the same format as Twitter API documentsSo that it is easy to get started with the Data Mangler service

As a Data AnalystI want API documentation for the Data Mangler serviceSo that it is easy to get started using it

As a Data AnalystI want API documentation in the same format as Twitter API documentsSo that it is easy to get started with the Data Mangler service

Is Negotiable, appropriate user, with a clear business value

Too specific, it locks down choice / may miss out on better ideas

PO is usually the wrong user, they rarely get business benefit

Page 25: Effective user stories for your agile or Scrum team

25

Getting to Done

Page 26: Effective user stories for your agile or Scrum team

26Getting to Done

• From the User Story text has been satisfiedIntention

• All completedAcceptance Criteria

• All completed• Or accepted as Not Applicable

Definition of Done

• Product Owner has reviewed and accepted the story.Reviewed

Page 27: Effective user stories for your agile or Scrum team

27Acceptance Criteria vs. User Stories

User Story

• Intention• Negotiable• Open yet

concise

Acceptance Criteria

• Requirements• Once set non-

negotiable• Specific and

concise

Page 28: Effective user stories for your agile or Scrum team

28Acceptance Criteria

• Explain Product Owner expectations

• Can clarify scope (either in or out)

• Can clarify assumptions

• Can detail implementation (but only when critical)

• Written on the back of the index card.

• Can be detailed, but should not be a specification.

• Added/Change over time (including within the Sprint)

• Not mandatory, but often used.

Page 29: Effective user stories for your agile or Scrum team

29Acceptance Criteria an example

Acceptance Criteria• £ Limit will be hard coded in this

version.

• User must manually load the loan (no notification of loan awaiting approval)

Page 30: Effective user stories for your agile or Scrum team

30

Product Backlog

User Story

Context

Title

Story text

Acceptance Criteria

Notes

Definition of Done

PersonaPersonaPersona

Release Plan

Tests

Software

• • • •

Page 31: Effective user stories for your agile or Scrum team

31

Exercise

Story vs Acceptance Criteria

Page 32: Effective user stories for your agile or Scrum team

32Home Chef

My Supermarket is an existing web site that allows shoppers to fill a grocery basket then shop around between supermarkets to get the best deal before arranging the shopping to be delivered.

HomeChef is our application, that we are building. It already allows our users to quickly generate shopping lists from their favourite recipes.

Page 33: Effective user stories for your agile or Scrum team

33Identify User Story, Acceptance Criteria, Notes

We are going to integrate HomeChef to MySupermarket, allowing our users to quickly order the groceries they need to cook a weeks worth of their favourite recipes. This should be a seamless process, that is resistant to errors and network drop outs. Our user research shows ours will not wait for longer than 15 seconds for any action in our application.

Once the user has selected several recipes, there should be an easy to see and use option to send their combined shopping list to their My Supermarket account. It would be nice if there was some indication that the transfer is processing, while the user waits.

Investigations have shown that configuring a My Supermarket account in our software will be difficult. A hard coded configuration exists that you can use.

We expect that it is our most thrifty home cooks that will use this feature. Other users may not view the extra step worth it for the cost saving it provides.

User Story Acceptance Criteria Notes

Page 34: Effective user stories for your agile or Scrum team

34Resulting elements

We are going to integrate HomeChef to MySupermarket, allowing our users to quickly order the groceries they need to cook a weeks worth of their favourite recipes. This should be a seamless process, that is resistant to errors and network drop outs. Our user research shows ours will not wait for longer than 15 seconds for any action in our application.

Once the user has selected several recipes, there should be an easy to see and use option to send their combined shopping list to their My Supermarket account. It would be nice if there was some indication that the transfer is processing, while the user waits.

Investigations have shown that configuring a My Supermarket account in our software will be difficult. A hard coded configuration exists that you can use.

We expect that it is our most thrifty home cooks that will use this feature. Other users may not view the extra step worth it for the cost saving it provides.

User Story Acceptance Criteria Notes

Page 35: Effective user stories for your agile or Scrum team

35Result as User Story

Integrate HomeChef to MySupermarket

As a thrifty home cook

I want to easily be able to send my shopping list to my MySupermarket account

So that I can save money and time on my weekly shopping

Acceptance Criteria• Must be resistant to errors and network

drop outs• Do not have to configure the account

details, that will be a different story

Notes• A transferring animation is a nice to have

Page 36: Effective user stories for your agile or Scrum team

36Identify User Story, Acceptance Criteria, Notes

‘Daily Journal’ needs to add photo support to the website version. We are losing younger people to our competitor ‘PhotoJournal’ and have to stop this. It is crucial that we support a wide variety of image types so that we don’t exclude many users. So jpg, jpeg, png, etc must be accepted. With the current database issues we need to limit the upload size so that we avoid further outages. Analysis is ongoing regarding which image types are most used and information will be forth coming. This feature can not damage our reputation as the fastest journaling app on the market. We are going to launch a media campaign next month: ‘Daily Journal the fastest journal app, now includes photos with five amazing filters. It is your one-stop journaling app.’

User Story Acceptance Criteria Notes

Page 37: Effective user stories for your agile or Scrum team

37Resulting elements

‘Daily Journal’ needs to add photo support to the website version. We are losing younger people to our competitor ‘PhotoJournal’ and have to stop this. It is crucial that we support a wide variety of image types so that we don’t exclude many users. So jpg, jpeg, png, etc must be accepted. With the current database issues we need to limit the upload size so that we avoid further outages. Analysis is ongoing regarding which image types are most used and information will be forth coming. This feature can not damage our reputation as the fastest journaling app on the market. We are going to launch a media campaign next month: ‘Daily Journal the fastest journal app, now includes photos with five amazing filters. It is your one-stop journaling app.’

User Story Acceptance Criteria Notes

User Benefit is not clearly represented

Business Benefit is to stop losing customers

Page 38: Effective user stories for your agile or Scrum team

38Result as User Story

Add photos with filters to website

As a young journal writer

I want to include fun looking photos with my journal entries

So that my entries are more engaging and memorable

Acceptance Criteria• Supports photo types ???• Photo size limited to ???• Performance must remain fastest on the market.• At least five filters must be implemented.

Notes• Due prior to end of next month, to align with

media campaign.

Page 39: Effective user stories for your agile or Scrum team

39

Exercise

Rewriting

Page 40: Effective user stories for your agile or Scrum team

40To rewrite

Ensure that every team member has enough knowledge to deploy the services and run the tests

Needs to be a shared document on how to do this to support team and inform new members

Page 41: Effective user stories for your agile or Scrum team

41One possible answer

Team able to deploy and test services

As a development team members

I want to know how to deploy and test the CRH services

So that I can gain fast feedback, without interrupting busy team members

Acceptance Criteria• NONE (Definition of Done already covers off the

requirement to test things)

Notes• NONE

Page 42: Effective user stories for your agile or Scrum team

42To rewrite

Onboard Mary Evans Data

535K lines

tilde separated

field with SME / Collection owner - not consistent grouping in this field

Business value is to count 200+ collection owners 3 times

Pre process, parse

Store audit log persistently

Page 43: Effective user stories for your agile or Scrum team

43One possible answer

Onboard mary evans data

In order to score highly on our SME engagement metric

As the Digital Catapult

I want to upload the data from Mary Evans in batches that maximise the number of batches each SME has some data

Acceptance Criteria• NONE

Notes• SME’s need to appear in three batches to count

as engaged.

Page 44: Effective user stories for your agile or Scrum team

44To rewrite

Implement Hub Control Service

Ping all services in domain every xSecs as health check

PostGres as store (can be log too)

API to inform of status

1 for registration of service

1 get address of one of registered service

1 to receive info about service

Clean-up service

Page 45: Effective user stories for your agile or Scrum team

45One possible answer

Hub control service

As a hub repository owner

I want the ability to actively monitor and to programmatically check the health of my hub repository

So that I can offer a good level of service to my customers

Notes• Ping all services in domain every xSecs as

health check• PostGres as store (can be log too)• API to inform of status• 1 for registration of service• 1 get address of one of registered service• 1 to receive info about service• Clean-up service

Page 46: Effective user stories for your agile or Scrum team

46To rewrite

Clean and well tested deployment instructions

Business value - lowered rework, lowered risk to reputation

Chef cookbooks working

Need a catalogue of these one click services

For Beta users to set up their own services

Page 47: Effective user stories for your agile or Scrum team

47One possible answer

Deployment Instructions

In order to save time deploying the CRH

As a beta user

I want clean easy to follow deployment instructions

Acceptance Criteria• Chef cookbooks working• Need a catalogue of these one click services

Notes• NONE

Page 48: Effective user stories for your agile or Scrum team

48

Backlog health

Page 49: Effective user stories for your agile or Scrum team

49A healthy backlog is

•Prioritised by PO for ROI•Ordered by team for dependencies, etc.

Ordered

•Top contains 1.5 to 2 sprints of INVESTments•Next comes Chunks•Followed by Epics

Balanced

•A mixture of work that roughly matches team capability•Considering cross skilling / up skilling may be a better investment in the long term

Diverse

Page 50: Effective user stories for your agile or Scrum team

50A healthy backlog

Waterline

• Ordered• Balanced• Diverse

Page 51: Effective user stories for your agile or Scrum team

51

Exercise

Backlog health

Page 52: Effective user stories for your agile or Scrum team

52Why is it unhealthy? What symptoms will occur?

• Not prioritised• Not ordered• Too many priority 1’s• No guidance from PO• Hard to plan sprints

Page 53: Effective user stories for your agile or Scrum team

53Why is it unhealthy? What symptoms will occur?

• All INVESTments• Hard to see the big picture• Extra effort to maintain the backlog• Lots of grooming effort will be

wasted• Lots of stories will be thrown away

Page 54: Effective user stories for your agile or Scrum team

54Why is it unhealthy? What symptoms will occur?

• Not enough INVESTments• Hard to plan sprint• Waste time in planning grooming

stories (usually in a rush)

Page 55: Effective user stories for your agile or Scrum team

55Why is it unhealthy? What symptoms will occur?

• Not enough diversity • May not fit team capabilities• Hard to balance work in the sprint

Page 56: Effective user stories for your agile or Scrum team

56

Wrap Up

Page 57: Effective user stories for your agile or Scrum team

57Summary

Page 58: Effective user stories for your agile or Scrum team

58Competencies to be gained

I hope that you are now able to:

• Summarise why User Stories are used for Agile Software Development

• Describe the key elements of a User Story

• Write out one of two common templates for User Stories

• Summarise how User Story text and Acceptance Criteria differ

• List the three C's

• Compare user stories based on the strength of their INVEST properties

• List the four items that are necessary for a story to be Done

• Write User Stories based on a detailed request

• Re-write poor User Stories into Effective User Stories

• Identify a healthy backlog

• List several ways a backlog can become unhealthy

• Identify an unhealthy backlog

Page 59: Effective user stories for your agile or Scrum team

Time to share

Page 60: Effective user stories for your agile or Scrum team

60Reference Material

How to write a useful User Story – article from Gov.uk

User Stories explained – article with examples in Agile Atlas