Patton User Story Mapping
Patton User Story Mapping
Patton User Story Mapping
Jeff Patton
jpatton@acm.org www.agileproductdesign.com
Jeff Patton, all rights reserved, www.AgileProductDesign.com
NBC Studios
Jeff Patton, all rights reserved, www.AgileProductDesign.com 4
* Kent Beck coined the term user stories in Extreme Programming Explained 1st Edition, 1999
User Stories act as the boundary to facilitate conversation between many How do I people understand How do I
describe to you what I want? users and their needs? What are the things my product needs to be successful? What are the details of this feature I need describe?
user
UX person BA
business leader
How do I schedule this work and track it its progress? How do I validate this work is done?
PM tester
developer
10
11
12
13
Story Maps support the primary intent of user stories, rich discussion
15
What were all the things you did to get ready to be here today?
Starting from the moment you woke up until you arrived here Write one item per sticky note
Jeff Patton, all rights reserved, www.AgileProductDesign.com 17
Whats common about the items each of you wrote down? What was different? How did the models created by different groups vary?
Jeff Patton, all rights reserved, www.AgileProductDesign.com 19
action evaluation
Did that action deliver the results I expected?
the world
goal task
goal evaluation
Is my goal met or problem resolved?
action
Take some
tool
goal task
tool
Jeff Patton, all rights reserved, www.AgileProductDesign.com 22
Software contains features that support a variety of tasks and a variety of goals
goals tasks
software
features tools
Jeff Patton, all rights reserved, www.AgileProductDesign.com 23
Goals, tasks, and tools apply at both a personal and organizational level
goals tasks
tools
Jeff Patton, all rights reserved, www.AgileProductDesign.com
business objectives
business processes
User tasks are decompose to smaller tasks and organize into activities
Tasks require intentional action on behalf of a tools user Tasks have an objective that can be completed Tasks decompose into smaller tasks Tasks often cluster together into activities of related tasks
task
activity
task task task
task
26
User tasks are decompose to smaller tasks and organize into activities
Tasks require intentional action on behalf of a tools user Tasks have an objective that can be completed Tasks decompose into smaller tasks Tasks often cluster together into activities of related tasks Read an email message is a task, Managing email is read manage email activity an activity. task message
create task folder send task message prioritize task message delete task message
place message task in folder
27
activity
task task task task
Jeff Patton, all rights reserved, www.AgileProductDesign.com 28
Too detailed
* from Cockburns Writing Effective Use Cases
Jeff Patton, all rights reserved, www.AgileProductDesign.com 29
30
In practice user stories may be written to describe user tasks or the tools that support them
goals
user story
More task-centric:
As a weekend gardener
tasks
software
As a weekend gardener I want a shovel so that I can [dig a hole to] plant a tree
31
features
Jeff Patton, all rights reserved, www.AgileProductDesign.com
Barneys
(5 minutes)
Your team
33
5. The date is defaulted to today, and the shift is defaulted to morning since he hasnt yet entered info for today. Steve begins to enter the reps name, but after a few characters the system auto-completes his name. 6. The reps ID is already filled in, along with the code for the credit card promotion theyre working on today. 7. Steve fills in the shift information for his rep. He then enters the total number of applications taken.
8. It looks like from the notes on this sheet that this rep left sick two hours early. Steve adds a note about this in the system.
9. Time passes as more reps bring in their sheets and Steve completes entering them in between conversations. 10. After all the sheets are done, Steve looks at a summary screen for the day. It looks like hes close to his goal. If the next shift continues at this rate hell beat the plan by 5% or so. Thats good.
He also sees yesterdays numbers, and last weeks numbers, and the last 30 days in graph that shows applications relative to approval rate. Last weeks numbers were bad, and its the last week of the month, so Steve knows hes got to do well today.
Steve clicks enter rep performance data. He shuffles his reps Jeff Patton, all rights reserved, www.AgileProductDesign.com
11. Steve validates that the base pay is correct at $5 per app, and that hes set an individual bonus giving reps $50 each if they reach 20 apps. Next to each rep he sees the calculated pay, base, bonus, and total pay for the day.
12. The annual sale at Macys has brought a lot of people in today. Steve chooses a sale increases mall foot traffic code to add to his shift data sheet. Frank, his boss, has pestered him to make sure he includes this type of information in his daily summaries. 36
include interesting plot points that help us envision important aspects of the system
A scenario can gloss over uninteresting details
37
38
Reviewing each others scenarios, extract taskcentric stories using yellow stickies
Write only the tasks verb-phrase for your title
Jeff Patton, all rights reserved, www.AgileProductDesign.com 39
By arranging activity and task-centric story cards spatially, we can tell bigger stories
Tell a big story of the product by starting with the major user activities the kiosk will be used for
Arrange activities left to right in the order youd explain them to someone when asked the question: What do people do with this system?
time
41
time
42
time
43
The map shows decomposition and typical flow across the entire system
Reading the activities across the top of the system helps us understand end-to-end use of the system. (Talk through just these when talking with people with short attention spans.)
time
Below each activity, or large story are the child stories that make it up
Jeff Patton, all rights reserved, www.AgileProductDesign.com 44
Building a story map helps facilitate discussion but requires a bit of space
46
47
Discuss, fill in, refine the map, and test for completeness
Jeff Patton, all rights reserved, www.AgileProductDesign.com 48
Once youve got the idea down, its quick to record stories as you discuss the experience with users
Discuss the steps of the process with candidate users
Record tasks as they say them Rearrange tasks and insert tasks as you clarify the big story Add activities as you identify them from discussion
time
49
As details emerge in conversation, trap them under their associated task cards
Record details so theyre not lost, and so those who youre working with know that youre listening
Consider tucking them under tasks cards to hide them from the discussion
activity
time
task sub-tasks or task details
50
1.
2 3
4
11
2. 3.
10
11
1 2 3 4 5 6 7 8 9 11 10
51
By arranging activity and task-centric story cards spatially, we can tell bigger stories axis to indicate necessity Add a vertical
Move tasks up and down this axis to indicate how necessary they are to the activity.
For a user to successfully engage in this activity, is it necessary they perform this task? If its not absolutely necessary, how critical is it?
time
necessity
52
By arranging activity and task-centric story cards spatially, we can tell bigger stories Map by telling bigger stories with it Test the Story
Choose an activity to start with When reading left to right use the conjunction and then to connect cards in the story With cards in the same row use or to connect cards in the story For cards below the top, absolutely necessary axis, use the phrase might optionally to communicate optionality Chose a concrete user name to help tell the story
time
necessity
53
By arranging activity and task-centric story cards spatially, we can tell bigger stories the title of what hes looking for. He steps up to Steve knows
the kiosk and searches by title. Optionally he might have searched by artist. After seeing titles that match what he typed in, Steve views the price new and used, and then views the status whether its in stock or not. He notices its in stock as both new and used, so then Steve views the location in the store for the used title.
Notice the bold time user tasks faced from our story map
necessity
Notice the conjunctions that knit the cards together into a longer story
54
Repeated review of the story map with multiple users and subject matter experts will help test the model for completeness
Jeff Patton, all rights reserved, www.AgileProductDesign.com 55
The backbone
time
56
58
59
60
Customers
User Personas
Release Roadmap
Target Customers Target Personas
Iteration or Sprint
What specifically will we build? (user stories) How will this iteration move us toward release objectives? Iteration Goal Development or Construction Tasks
What user or stakeholder need will the story serve? How will it specifically look and behave? How will I determine if its completed? Story Details Acceptance Tests 61
Given story map organized vertically by necessity, we need only slice to plan
time necessary less optional
first release
optionality
second release
more optional
third release
Choose coherent groups of features that consider the span of business functionality and user activities Support all necessary activities with the first release Improve activity support and add additional activities with subsequent releases
Jeff Patton, all rights reserved, www.AgileProductDesign.com 62
Given story map organized vertically by necessity, we need only slice to plan
63
Adding tape lines to the wall lets participants organize stories into layers
64
Adding tape lines to the wall lets participants organize stories into layers
65
66
67
68
Product goals suggest how the business will earn value from the product, and how we can tell were getting it
Software built for internal use usually saves money or helps improve service to customers indirectly earning money Software built for use by customers earns money through direct sales, improved customer retention, or improved customer loyalty Product goals are specific to that product - not generic to any product. A goal to earn more money isnt useful Given a product goal, ask: if were making progress towards this goal, how would we know it? What would we observe in our organization that indicates success? The answer to these questions are useful metrics
Jeff Patton, all rights reserved, www.AgileProductDesign.com 69
Use product goals to identify candidate incremental releases, where each release delivers benefit
Create horizontal swim-lanes to group features into releases Arrange features vertically by necessity from the users perspective Split tasks into parts that can be deferred till later releases
Use the product goals from your handouts to identify slices that incrementally realize product goals
more optional
70
Choices in business goals, users, and use have big consequences to software scope
71
Segmenting scope into incremental releases also segments use, user goals, and business goals
Business Goals User Constituencies
Work top down (goals to scope) or bottom up (scope back to goals), but always work to ensure youre delivering scope that delivers on targeted business and user goals
3
72
73
74
Traditional software development fixes scope then estimates, and attempts to fix time and cost
Scope
Time
Cost (resources)
76
Agile development fixes time and cost, then leverages iteration and incrementing to maximize scope
Time Scope Cost (resources)
Agile software development
Time
77
Leverage a shared understanding of desired product goals to minimize scope while maximizing value
Scope
Time Cost (resources)
Agile software development
Time
Cost (resources)
Scope
78
To release benefit on a schedule well need to leverage incremental and iterative thinking
(Whats the difference?)
Jeff Patton, all rights reserved, www.AgileProductDesign.com 79
80
iterating builds a rough version, validates it, then slowly builds up quality
A more iterative allows you to move from vague idea to realization making course corrections as you go.
81
Many organizations consider revising the same functionality as failure. Iteration is not tolerated.
193 Jeff Patton, all rights reserved, www.AgileProductDesign.com 82
83
hole
dig hole
hold my options open
Jeff Patton, all rights reserved, www.AgileProductDesign.com 85
hole
dig hole
86
Products with similar features often vary substantially in the price we pay
Think about the high-level features in a car - well a bus in our example At a high level, all features are necessary But we know that all buses dont have the same price Each essential feature varies in subjective quality affecting the final price
low cost
Jeff Patton, all rights reserved, www.AgileProductDesign.com
moderate cost
high cost
51
87
Kano cautions us to consider quality as being composed of objective and subjective elements
Discussions of quality have revolved around the two aspects of subjectivity and objectivity since the time of Aristotle. Embedded in this objectivesubjective split is the idea that objective quality pertains to the conformance to requirements while subjective quality pertains to the satisfaction of users.
--Noriaki Kano
Jeff Patton, all rights reserved, www.AgileProductDesign.com 88
Kano explains three general classifications for product features: must-haves, one-dimensionals, and delighters
Must-haves
The products must have this features for me to be consider the product acceptable
One-dimensionals
This car has many flaws. Buy it anyway. Its so much fun to drive -- from a NY Times review of the Mini Cooper
Delighters
I love this element of the product!
89
(one dimensional)
Stopping distance
Anti-locking (delighter)
Keep in mind: you must know your customers and users to determine subjective value.
Interior seating
exterior body
transmission
suspension
features
brakes
engine
tires
93
Example: a form with optional fields, date lookup tools, input translation on dates
Safety
What would make this feature safer for me to use? For both the user, and for the business paying for the software?
Example: input validation, enforcement of business rules such as credit card validation
* Adapted from Gerard Meszaros Storyotypes
What would make this feature easier to use? Jeff Patton, all rights reserved, www.AgileProductDesign.com
Building up quality iteratively and incrementally ships the best product possibleknow each story can be split into at least four parts We
sprint 4 3 2 1
Early iterations strive to build bare necessities, later iterations build up quality Evaluating readiness based on subjective quality to understand doneness
BAD
C D B A
CBD B
release
D B A
AD B
AD B I
BD I
Product goal: (in 4 sprints) be driving the highest quality bus possible
Jeff Patton, all rights reserved, www.AgileProductDesign.com 96
uncertainty
This product growing strategy slowly brings the product into focus
An artist envisions an entire painting by starting with a sketch or an under-painting and slowly building up detail Apply the same strategy to learn about the product domain as quickly as possible to chase out uncertainty before too heavily investing
Opening Game Build up necessities Mid-Game Build out flexibility and business rule enforcement End-Game
Refine the UI and interactions, take advantage of iterative learning
uncertainty
98
Looking at the release of business value over time lets us see whats going on here
cumulative business value
To finish on time we may trim the tail by deferring stories of modest value
Mid Game
Once were confident we have the shape of the product right, we begin to pile in value
End Game
Over time the value of stories begin to diminish signaling its time for release
99
Split a task-centric backlog item into smaller iteration stories using the 4 quality heuristics Work in small groups of 2-3 people. Review the Story Map the organized backlog for the Barneys problem Choose a story youd like to work with, one where your group can imagine a prospective user interface. Brainstorm the smaller stories that could build up the larger story to its full quality. Arrange your brainstormed stories into 3 pile:
Jeff Patton, all rights reserved, www.AgileProductDesign.com 100
Parting thoughts
102
Questions?
103
Jeff Patton
jpatton@acm.org www.agileproductdesign.com
Jeff Patton, all rights reserved, www.AgileProductDesign.com