user stories cohn ndc2010

Upload: alla-alimova

Post on 10-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 User Stories Cohn NDC2010

    1/16

  • 8/8/2019 User Stories Cohn NDC2010

    2/16

    Copyright Mountain Goat Software

    Balance is critical

    If either side dominates, the business loses

    If the business side dominatesfunctionality and dates are mandated with littleregard for reality or whether the developersunderstand the requirements

    If the developers dominate

    technical jargon replaces the language

    of the business and developers lose theopportunity to learn from listening

    Copyright Mountain Goat Software

    We need a way ofworking together sothat resource

    allocation becomes ashared problem

    Project fails whenthe problem ofresource allocationfalls too far to one

    side

    3

    4

  • 8/8/2019 User Stories Cohn NDC2010

    3/16

    Copyright Mountain Goat Software

    If developers are responsible

    May trade quality for additional features

    May only partially implement a feature May solely make decisions that should involve

    the business side

    If the business is responsible

    Lengthy upfront requirements negotiation andsignoff

    Features are progressively dropped as thedeadline nears

    Copyright Mountain Goat Software

    We cannot perfectly predict a softwareschedule

    As users see the software, they come up withnew ideas

    Too many intangibles

    Developers have a notoriously hard timeestimating

    If we cant perfectly predict a schedule, we

    cant perfectly say what will be delivered

    5

    6

  • 8/8/2019 User Stories Cohn NDC2010

    4/16

    Copyright Mountain Goat Software

    We make decisions basedon the information

    we have

    but do it often

    Rather than making one all-encompassing set of decisions

    we spreaddecision-making

    across the project

    Thisiswhereuser

    storiescomein

    Copyright Mountain Goat Software

    Agenda

    What stories areWriting user stories

    Why user stories

    7

    8

  • 8/8/2019 User Stories Cohn NDC2010

    5/16

    Copyright Mountain Goat Software

    Ron Jeffries three Cs

    Card

    Stories are traditionally written on note cards.

    Cards may be annotated with estimates, notes, etc.

    Conversation

    Details behind the story come out during conversationswith product owner

    Confirmation Acceptance tests confirm the story was coded correctly

    Copyright Mountain Goat Software

    Samples from a travel website

    Asauser, Iwantto

    reserveahotelroom.

    Asauser,I wantto

    cancelareservation.

    As a vacation traveler,I want to see photos of

    the hotels.

    As a frequent flyer, Iwant to rebook a past tripso that I save time

    booking trips I take often.

    9

    10

  • 8/8/2019 User Stories Cohn NDC2010

    6/16

    Copyright Mountain Goat Software

    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?

    Copyright Mountain Goat Software

    Details as conditions of satisfaction

    As a user, I cancancel a reservation. Verify that a premium member can

    cancel the same day without a fee.Verify that a non-premium member ischarged 10% for a same-day cancellation.Verify that an email confirmation is sent.

    Verify that the hotel is notified of anycancellation.

    11

    12

  • 8/8/2019 User Stories Cohn NDC2010

    7/16

    Copyright Mountain Goat Software

    Details added in smaller sub-stories

    As a user, I cancancel a reservation.

    As a site visitor, I amemailed a confirmation ofany cancelledreservation.

    As a non-premiummember, I can cancel upto 24 hours in advance.

    As a premium sitemember, I can cancel a

    reservation up to thelast minute.

    Copyright Mountain Goat Software

    Techniques can be combined

    These approaches are not mutually exclusive

    Write stories at an appropriate level

    By the time its implemented, each story willhave conditions of satisfaction associatedwith it

    13

    14

  • 8/8/2019 User Stories Cohn NDC2010

    8/16

    2009 Mountain Goat Software Copyright Mountain Goat Software

    The product backlog iceberg

    Sprint

    Release

    FutureReleases

    Priority

    Copyright Mountain Goat Software

    Stories, themes and epics

    Epic

    A large userstory

    ThemeA collection of

    related userstories

    15

    16

  • 8/8/2019 User Stories Cohn NDC2010

    9/16

    Copyright Mountain Goat Software

    An example

    As a VP Marketing, I want toselect the timeframe to use

    when reviewing the performanceof past promotional campaigns,so that I can identify and repeatprofitable ones.

    As a VP Marketing, I can selectwhich type of campaigns (directmail, TV, email, radio, etc.) toinclude when reviewing theperformance of historicalpromotional campaigns.

    As a VP Marketing, I want toreview the performance ofhistorical promotionalcampaigns so that I canidentify and repeat profitableones.

    Copyright Mountain Goat Software

    As a VP Marketing, I want tosee information on directmailings when reviewinghistorical campaigns.

    As a VP Marketing, I want tosee information on televisionads when reviewinghistorical campaigns.

    As a VP Marketing, I want tosee information on email adswhen reviewing historical

    campaigns.

    17

    18

  • 8/8/2019 User Stories Cohn NDC2010

    10/16

    Copyright Mountain Goat Software

    AgendaWhat stories areWriting user stories

    Why user stories

    Copyright Mountain Goat Software

    Use this template

    As a , I want so that .

    Logging in

    See how many user stories you can write about

    logging in.

    Examples: As a registered user, I am required to log in so that I

    can access the system.

    As a forgetful user, I can request a passwordreminder so that I can log in if I forget mine

    19

    20

  • 8/8/2019 User Stories Cohn NDC2010

    11/16

    Copyright Mountain Goat Software

    Includes whole team plus possibly someexternal stakeholders

    Typically not done every sprint

    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

    Copyright Mountain Goat Software

    As a frequentflyer, I want tobook a trip usingmiles.

    As a frequentflyer, I want torebook a trip Itake often.

    As a frequentflyer, I want torequest anupgrade.

    As a frequentflyer, I want tosee if my upgradecleared.

    Start with epics and iterate

    As a frequentflyer, I want tosee check myaccount.

    As a frequentflyer, I want tobook a trip.

    As a frequentflyer, I wantto

    Frequent Flyer

    21

    22

  • 8/8/2019 User Stories Cohn NDC2010

    12/16

    Copyright Mountain Goat Software

    AgendaWhat stories areWriting user stories

    Why user stories

    2009 Mountain Goat Software Copyright Mountain Goat Software

    So why user stories?

    Shift focus from writing to talking

    If requirementsare written down The user will getwhat she wantsthen

    At best shell getwhat was writtenYoubuiltwhatI

    askedfor,butits

    notwhatIneed.

    23

    24

  • 8/8/2019 User Stories Cohn NDC2010

    13/16

    Copyright Mountain Goat Software

    Words are imprecise

    Entre comes withsoup or salad and bread.

    (Soup or Salad) and Bread

    (Soup) or (Salad and Bread)

    Copyright Mountain Goat Software

    Examples

    The user can enter a name.It can be 127 characters.

    The system shouldprominently display a

    warning message wheneverthe user enters invalid data.

    Must the user enter aname?

    Can it be other than 127

    chars?

    What does shouldmean?

    What does prominentlydisplay mean?

    Is invalid data defined

    elsewhere?

    25

    26

  • 8/8/2019 User Stories Cohn NDC2010

    14/16

    Copyright Mountain Goat Software

    Additional reasons

    Stories are understandable

    Developers and customers understand themPeople are better able to remember events ifthey are organized into stories

    Support and encourage iterativedevelopment

    Can easily start with epics and disaggregatecloser to development time

    Copyright Mountain Goat Software

    Yet more reasons

    Stories are the right size for planning

    Stories support opportunistic development

    We design solutions by movingopportunistically between top-down andbottom-up approaches

    Stories support participatory design

    27

    28

  • 8/8/2019 User Stories Cohn NDC2010

    15/16

    Copyright Mountain Goat Software

    What if we had stories instead?

    Copyright Mountain Goat Software

    Dont forget the purpose

    The story text we write on

    cards is less important than

    the conversations we have.

    29

    30

  • 8/8/2019 User Stories Cohn NDC2010

    16/16

    Copyright Mountain Goat Software

    Informationand

    registrationat

    www.programutvikling.no

    Copyright Mountain Goat Software

    Mike [email protected]

    www.mountaingoatsoftware.com

    twitter: mikewcohn(720) 8906110

    31

    32