User Stories: Stories for Grown-Ups

43
Stories for Grown-ups Inspired by Mike Cohn and Kelly Waters – thank you

description

Douglas Talbot & Sandy Mamoli One of the most fundamental problems facing a project is how you decide on, document, and manage your requirements. Obviously Agile software development promotes handling this very differently than a Waterfall approach. One mechanism used by Agile projects to track requirements is the "User Story" - but what are they, how are they created, who uses them, when and how, within the development cycle?

Transcript of User Stories: Stories for Grown-Ups

Page 1: User Stories: Stories for Grown-Ups

Stories for Grown-ups

Inspired by Mike Cohn and Kelly Waters – thank you

Page 2: User Stories: Stories for Grown-Ups

Fixed written requirements

Page 3: User Stories: Stories for Grown-Ups

‣ Individuals and interactions over processes and tools

‣ Working software over comprehensive documentation

‣ Customer collaboration over contract negotiation

‣ Responding to change over following a plan

Agile Values

Page 4: User Stories: Stories for Grown-Ups

Communications challenge

Page 5: User Stories: Stories for Grown-Ups

Collaboration

Page 6: User Stories: Stories for Grown-Ups

A continuum

Page 7: User Stories: Stories for Grown-Ups

User stories: an improvement

Page 8: User Stories: Stories for Grown-Ups

TimelineEpics &Stories

Stories &Tasks

Stories &Tasks

ImplementedStories

Page 9: User Stories: Stories for Grown-Ups

Getting to User Stories

Page 10: User Stories: Stories for Grown-Ups

Epics

‣ Compound epics

‣ Complex epics

‣ Placeholder story

‣ Way down the backlog

Page 11: User Stories: Stories for Grown-Ups

Now we can have user stories!

Page 12: User Stories: Stories for Grown-Ups

What is a user story?

A concise, written description of a piece of functionality that will be valuable to a

user (or owner) of the software.

Page 13: User Stories: Stories for Grown-Ups

‣ Discovered at planning stages

‣ Discovered during the project

‣ Continuously emerge/change and disappear

‣ For sizing the project and sprint

‣ For prioritising what to do next

‣ Monitored each sprint

‣ For the development team and owner

Stories are:

Page 14: User Stories: Stories for Grown-Ups

When

‣ Some are done at an initial planning stage

‣ Some are done later

‣ Continuously emerge/change and disappear

‣ Worked on throughout the project

Page 15: User Stories: Stories for Grown-Ups

Stories are for sizing

Page 16: User Stories: Stories for Grown-Ups

Stories are for prioritising

Page 17: User Stories: Stories for Grown-Ups

Stories are monitored

Page 18: User Stories: Stories for Grown-Ups

Stories are monitored

Page 19: User Stories: Stories for Grown-Ups

Stories are monitored

Page 20: User Stories: Stories for Grown-Ups

Stories are monitored

Page 21: User Stories: Stories for Grown-Ups

Stories are for the team and product owner

Page 22: User Stories: Stories for Grown-Ups

Stories have 3 parts

‣ Card: A description, Priority and Estimate

‣ Conversation: A section for capturing further information about the user story and details of conversations

‣ Confirmation: A section to convey what tests will be carried out to confirm the user story is complete and working as expected

Source: XP Magazine 8/30/01, Ron Jeffries.

Page 23: User Stories: Stories for Grown-Ups

“As a music lover

I want to submit payment by credit card

so that I can purchase the album ”

Card: The Description

Page 24: User Stories: Stories for Grown-Ups

Card

Page 25: User Stories: Stories for Grown-Ups

Card

Page 26: User Stories: Stories for Grown-Ups

A section for capturing further information about the user story and details of conversations

The Conversation

Page 27: User Stories: Stories for Grown-Ups

A section to convey what tests will be carried out to confirm the user story is complete

and working as expected

The Confirmation

Page 28: User Stories: Stories for Grown-Ups

6 attributes of a good user story

Page 29: User Stories: Stories for Grown-Ups

‣ Independent

‣ Negotiable

‣ Valuable to users or purchasers

‣ Estimatable

‣ Small

‣ Testable

Page 30: User Stories: Stories for Grown-Ups

Independent

Page 31: User Stories: Stories for Grown-Ups

Negotiable

Page 32: User Stories: Stories for Grown-Ups

Valuable

Page 33: User Stories: Stories for Grown-Ups

Estimatable

Page 34: User Stories: Stories for Grown-Ups

Small

Page 35: User Stories: Stories for Grown-Ups

Testable

Page 36: User Stories: Stories for Grown-Ups

A word of warning

‣ Don’t use stories in a sequential fixed process

‣ Don’t make a contract out of stories

‣ Don’t write stories in isolation

Page 37: User Stories: Stories for Grown-Ups

What next?

ChallengesTasksSpikes

Feedback

Page 38: User Stories: Stories for Grown-Ups

Still alive? Any questions?Still alive? Any questions?

[email protected]@sprog.co.nz

Page 39: User Stories: Stories for Grown-Ups

Challenges

Page 40: User Stories: Stories for Grown-Ups

Iteration 0

Page 41: User Stories: Stories for Grown-Ups

Non-functional requirements

Page 42: User Stories: Stories for Grown-Ups

‣ The system will connect to the database through a connection pool

‣ We need to use Akamai caching

‣ The system shall be written in Java

‣ The system needs to be able to store 700 million records

‣ We need to set up a VISTA development box

Customer value?

Page 43: User Stories: Stories for Grown-Ups

Spikes