Markdown Editor

User Story Map Template (Jeff Patton)

Personas, backbone of activities, walking skeleton, stories in release slices, release goals, Given/When/Then criteria

요구사항 및 분석표준Jeff Patton, User Story Mappinguserstorymap

사용법: Use it to plan a product or feature as a whole user journey and slice releases by outcome. Lay out the backbone of activities left to right first. The main pitfall is slicing by component instead of releases a user can use end to end.

미리보기

User Story Map: [Product or feature name]

User story map following the story mapping technique described by Jeff Patton in User Story Mapping. The backbone of user activities runs left to right in the order users experience them; stories hang below each task, and horizontal slices define releases, starting with a walking skeleton. Replace every [bracketed] value and every row marked Example.

FieldValue
Product / feature[Name]
Map owner[@product-owner]
Participants[@designer], [@dev-lead], [@qa], [@stakeholder]
Mapping session dateYYYY-MM-DD
Version[0.1]
Last updatedYYYY-MM-DD
Board link[Link to digital board or photo]

1. Product goal and scope

Goal. [Who] will be able to [achieve what] so that [outcome].

Example: Independent fitness studios will be able to sell class passes and take bookings online so that front-desk phone bookings fall by half.

Scope of this map. [The journey from first visit to repeat booking; excludes payroll and instructor scheduling.]

2. Personas

PersonaRoleGoalsFrustrations today
Example: Maya, studio memberCustomerBook a class in under a minute from her phoneHas to call during opening hours
Example: Tom, studio ownerAdministratorFill classes, get paid upfrontSpends 2 hours a day on the phone
Example: Lin, instructorStaffKnow who is coming before classPaper lists are out of date
[Name][Role][Goals][Frustrations]

3. Backbone: user activities and tasks

OrderActivityUser tasks (left to right)Main persona
A1Example: Discover classesBrowse timetable; filter by type; view class detailsMaya
A2Example: Buy a passChoose pass; create account; payMaya
A3Example: Book a classPick a slot; confirm booking; add to calendarMaya
A4Example: AttendReceive reminder; check in; cancel if neededMaya, Lin
A5Example: Manage studioSet up timetable; see bookings; view revenueTom
[An][Activity][Tasks][Persona]

4. Walking skeleton

The walking skeleton for this map is one story per activity:

ActivitySkeleton story
A1 Discover classesExample: See this week's timetable as a list
A2 Buy a passExample: Pay for a 10-class pass by card
A3 Book a classExample: Book a slot with a pass credit
A4 AttendExample: Instructor sees the booking list on a phone
A5 Manage studioExample: Owner enters classes in a simple form

5. Story map with release slices

SliceBrowse timetableFilterChoose and pay for passBook slotReminder and check-inOwner dashboard
Release 1: walking skeletonList of this week's classesnoneCard payment for 10-class passBook with pass creditInstructor booking listEnter classes in form
Release 2: members self-serveCalendar view, 4 weeks aheadBy class typeAccount with saved cardWaitlist when fullEmail reminder 2 h beforeBookings per class
Release 3: grow revenueInstructor profilesBy instructor, timeMemberships, promo codesRecurring bookingQR check-in, late-cancel feeRevenue and fill-rate report
[Release n][Story][Story][Story][Story][Story][Story]

The same map is shown as a diagram, with activities on top and stories grouped by release below.

6. Release goals and success metrics

ReleaseGoalSuccess metricTargetMeasured byDate
R1Example: Prove members will book onlineShare of bookings made online at pilot studio30% within 4 weeksBooking dataYYYY-MM-DD
R2Example: Cut front-desk phone loadPhone bookings per dayDown 50% from baselineStudio logYYYY-MM-DD
R3Example: Increase revenue per classAverage fill rate75%Owner dashboardYYYY-MM-DD
[Rn][Goal][Metric][Target][Source]YYYY-MM-DD

7. Story template and acceptance criteria

Story format. As a [persona], I want [capability] so that [benefit].

FieldValue
Story ID[KEY-nnn]
Activity / task[A3 / Book slot]
Release slice[R2]
Estimate[Points]
Dependencies[KEY-nnn]

Example: KEY-214 As Maya, a studio member, I want to join a waitlist when a class is full so that I get a place if someone cancels.

Acceptance criteria:

  • Given a class is full and I have a pass credit, when I select "Join waitlist", then I see my position in the waitlist.
  • Given I am first on the waitlist, when a booked member cancels, then I am booked automatically, one credit is used and I receive an email.
  • Given the class starts in less than 1 hour, when a place frees up, then waitlisted members are not auto-booked and the place is shown as available.

8. Mapping session agenda

TimeStepOutput
0:00Introduce goal, personas and scopeShared understanding
0:20Silent writing: each person writes user tasks on cardsRaw tasks
0:40Arrange tasks left to right; group into activitiesBackbone
1:10Walk the narrative aloud; fill gapsComplete backbone
1:30BreakRest
1:40Add stories, alternatives and details under each taskStory body
2:30Draw slice lines: walking skeleton, then releases by outcomeRelease slices
3:10Define goals and metrics for each slice; list open questionsSections 6 and 9
3:30Close: owners for follow-up actionsAction list

9. Open questions and assumptions

IDQuestion or assumptionOwnerDueStatus
Q-01Example: Do studios accept card payment only, or cash at desk too?[@po]YYYY-MM-DDOpen
A-01Example: Members book mainly on mobile[@ux]YYYY-MM-DDTo validate in R1
[ID][Question][@name]YYYY-MM-DD[Status]

Standard and licence note

Based on the story mapping technique described by Jeff Patton in User Story Mapping: Discover the Whole Story, Build the Right Product (O'Reilly, 2014), and on the common Given/When/Then convention for acceptance criteria. This template is original text written for this collection and reproduces no text from the book. Template licence: MIT.

관련 템플릿