an introduction to user stories

Upload: aanastassov

Post on 10-Apr-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 An Introduction to User Stories

    1/24

    An Introduction toUser Stories

    Mike Cohn - background

    Mountain Goat Software, LLC

    1

    2

  • 8/8/2019 An Introduction to User Stories

    2/24

    Mountain Goat Software, LLC

    Software requirements is a communication

    problem

    What problem do stories address?

    Those who want thesoftware mustcommunicate withthose who will buildit

    Mountain Goat Software, LLC

    Balance is critical If either side dominates, the business loses

    If the business side dominates functionality and dates are mandated with little

    regard for reality or whether the developers

    understand the requirements

    If the developers dominate technical jargon replaces the language

    of the business and developers lose theopportunity to learn from listening

    3

    4

  • 8/8/2019 An Introduction to User Stories

    3/24

    Mountain Goat Software, LLC

    Resource allocation

    We need a way of working together so that

    resource allocation becomes a shared problem Project fails when the problem of resource

    allocation falls too far to one side

    Mountain Goat Software, LLC

    Responsibility for resource allocation

    5

    6

  • 8/8/2019 An Introduction to User Stories

    4/24

    Mountain Goat Software, LLC

    Imperfect schedules

    We cannot perfectly predict a software

    schedule As users see the software, they come up with new

    ideas

    Too many intangibles Developers have a notoriously hard time

    estimating

    If we cant perfectly predict a schedule, we

    cant perfectly say what will be delivered

    Mountain Goat Software, LLC

    So what do we do?

    7

    8

  • 8/8/2019 An Introduction to User Stories

    5/24

    Mountain Goat Software, LLC

    Mountain Goat Software, LLC

    Ron Jeffries Three Cs

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

    9

    10

  • 8/8/2019 An Introduction to User Stories

    6/24

    Mountain Goat Software, LLC

    Samples from a travel website

    Mountain Goat Software, LLC

    Where are the details? As a user, I can cancel a reservation.

    Does the user get a full or partial refund? Is the refund to her credit card or is it site credit?

    How far ahead must the reservation be cancelled?

    Is that the same for all hotels?

    For all site visitors? Can frequent travelers cancel later?

    Is a confirmation provided to the user? How?

    11

    12

  • 8/8/2019 An Introduction to User Stories

    7/24

    Mountain Goat Software, LLC

    Details as conditions of satisfaction

    The product owners conditions of satisfaction can beadded to a story

    These are essentially tests

    Mountain Goat Software, LLC

    Details added in smaller sub-stories

    13

    14

  • 8/8/2019 An Introduction to User Stories

    8/24

    Mountain Goat Software, LLC

    Techniques can be combined

    These approaches are not mutually exclusive

    Write stories at an appropriate level By the time its implemented, each story will

    have conditions of satisfaction associated withit

    Mountain Goat Software, LLC

    The product backlog iceberg

    Sprint

    Release

    FutureReleases

    Priority

    15

    16

  • 8/8/2019 An Introduction to User Stories

    9/24

    Mountain Goat Software, LLC

    Stories, themes and epicsUser Story

    A description of desired

    functionality told from theperspective of the user or

    customer.

    Theme

    A collection of related

    user stories.

    Epic

    A large user story.

    Mountain Goat Software, LLC

    An example

    Clearly an epic

    Epics??

    17

    18

  • 8/8/2019 An Introduction to User Stories

    10/24

    Mountain Goat Software, LLC

    An example

    Mountain Goat Software, LLC

    19

    20

  • 8/8/2019 An Introduction to User Stories

    11/24

    Mountain Goat Software, LLC

    The User

    Many projects mistakenly assume theres only

    one user: The user

    Write all stories from one users perspective

    Assume all users have the same goals

    Leads to missing stories

    Mountain Goat Software, LLC

    Common attributes

    21

    22

  • 8/8/2019 An Introduction to User Stories

    12/24

    Mountain Goat Software, LLC

    User roles

    Broaden the scope from looking at one user

    Allows users to vary by What they use the software for

    How they use the software

    Background

    Familiarity with the software / computers

    Used extensively in usage-centered designSource: Software for Use byConstantine and Lockwood (1999).

    Mountain Goat Software, LLC

    System and programmer users

    23

    24

  • 8/8/2019 An Introduction to User Stories

    13/24

    Mountain Goat Software, LLC

    Advantages of using roles

    Mountain Goat Software, LLC

    25

    26

  • 8/8/2019 An Introduction to User Stories

    14/24

    Mountain Goat Software, LLC

    A horrible question

    A problem: The question is closed

    {Yes | No}

    Mountain Goat Software, LLC

    We can do better

    Its open Full range of answers

    But it has too much context

    27

    28

  • 8/8/2019 An Introduction to User Stories

    15/24

    Mountain Goat Software, LLC

    A better way to ask

    We want to ask questions that are Open-ended

    Context-free

    Mountain Goat Software, LLC

    My context isnt your context

    29

    30

  • 8/8/2019 An Introduction to User Stories

    16/24

    Mountain Goat Software, LLC

    Its my problem, I know the solution

    Having a problem does not uniquely qualify

    you to solve it It hurts when I go like this

    Mountain Goat Software, LLC

    We need to stop asking users

    Since users dont know how to solve theirproblems, we need to stop asking

    We need to involve them instead

    31

    32

  • 8/8/2019 An Introduction to User Stories

    17/24

    Mountain Goat Software, LLC

    Story-writing workshops

    Includes developers, users, customer, others

    Brainstorm to generate stories Goal is to write as many stories as possible

    Some will be implementation ready

    Others will be epics

    No prioritization at this point

    Mountain Goat Software, LLC

    Start with epics and iterate

    33

    34

  • 8/8/2019 An Introduction to User Stories

    18/24

    Mountain Goat Software, LLC

    Mountain Goat Software, LLC

    What makes a good story?

    Thanks to Bill Wake for the acronym. See

    www.xp123.com.

    35

    36

  • 8/8/2019 An Introduction to User Stories

    19/24

    Copyright Mountain Goat Software, LLC

    INVESTing in good stories

    Independent

    Dependenices lead to problems estimating and prioritizing

    Can ideally select a story to work on without pulling in 18other stories

    Negotiable Stories are not contracts Leave or imply some flexibility

    Valuable To users or customers, not developers

    Rewrite (most) developer stories to reflect value tousers or customers

    Copyright Mountain Goat Software, LLC

    INVESTing in good stories Estimatable Because plans are based on user stories, we need

    to be able to estimate them

    Sized Appropriately Complex stories are intrinsically large Compound stories are multiple stories in one

    Testable Stories need to be testable

    37

    38

  • 8/8/2019 An Introduction to User Stories

    20/24

    Mountain Goat Software, LLC

    Mountain Goat Software, LLC

    then

    YoubuiltwhatI

    askedfor,butits

    notwhatIneed.

    39

    40

  • 8/8/2019 An Introduction to User Stories

    21/24

    Mountain Goat Software, LLC

    Words are imprecise

    Mountain Goat Software, LLC

    Examples

    41

    42

  • 8/8/2019 An Introduction to User Stories

    22/24

    Mountain Goat Software, LLC

    Mountain Goat Software, LLC

    What are we building?

    1.The product shall have a gas engine.

    2.The product shall have four wheels.

    2.1.The product shall have a rubber tiremounted to each wheel.

    3.The product shall have a steering wheel.

    4.The product shall have a steel body.

    Source: Adapted from The Inmates areRunning the Asylumby Alan Cooper (1999).

    43

    44

  • 8/8/2019 An Introduction to User Stories

    23/24

    Mountain Goat Software, LLC

    What if we had stories instead?

    Mountain Goat Software, LLC

    The product

    45

    46

  • 8/8/2019 An Introduction to User Stories

    24/24

    Mountain Goat Software, LLC

    Most importantly...

    The story text we write oncards is less important thanthe conversations we have.

    Dont forget the purpose

    Mountain Goat Software LLC

    [email protected]

    www.mountaingoatsoftware.com

    (720) 890-6110 (office)

    (303) 810-2190 (mobile)

    Mike Cohn contact info

    47