2007-10-01 Mike Cohn - User Stories Applied PDF
2007-10-01 Mike Cohn - User Stories Applied PDF
2007-10-01 Mike Cohn - User Stories Applied PDF
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 technical jargon replaces the language of the business and developers lose the opportunity to learn from listening
Mountain Goat Software, LLC
Resource allocation
We need a way of working together so that Project fails when the problem of resource
allocation falls too far to one side resource allocation becomes a shared problem
May trade quality for additional features May only partially implement a feature May solely make decisions that should involve the
business side
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
So what do we do?
We make decisions based on the information we have Rather than making one all-encompassing set of decisions
...but do it often
e r A s e i r o t S t a Wh
Conversation
Conrmation
As a vacation planner, I want to see photos of the hotels. As a frequent flyer, I want to rebook a past trip, so that I save time booking trips I take often.
Is the refund to her credit card or is it site credit? Is that the same for all hotels? For all site visitors? Can frequent travelers cancel later? How?
Mountain Goat Software, LLC
User Story
A description of desired functionality told from the perspective of the user or customer.
Epic
A large user story.
Mountain Goat Software, LLC
An example
As a VP Marketing, I want to review the performance of historical promotional campaigns so that I can identify and repeat protable ones.
Clearly an epic
As a VP Marketing, I want to select the timeframe to use when reviewing the performance of past promotional campaigns, so that I can identify and repeat protable ones.
Epics??
As a VP Marketing, I can select which type of campaigns (direct mail, TV, email, radio, etc.) to include when reviewing the performance of historical promotional campaigns.
Mountain Goat Software, LLC
An example
As a VP Marketing, I want to see information on direct mailings when reviewing historical campaigns. As a VP Marketing, I want to see information on television advertising when reviewing historical campaigns. As a VP Marketing, I want to see information on email advertising when reviewing historical campaigns.
The User
Many projects mistakenly assume theres only
one user:
Write all stories from one users perspective Assume all users have the same goals Leads to missing stories
Mountain Goat Software, LLC
The user
Common attributes
Frequent yer who Wants to schedule never knows where her familys annual shell be vacation Frequent yer who ies every week but always to the same place Hotel chain Vice A frequent yers President; wants to assistant; books her monitor reservations reservations
Mountain Goat Software, LLC
Common attributes
Frequent yer who Wants to schedule never knows where her familys annual shell be vacation Frequent yer Frequent yer who ies every week but always to the same place Hotel chain Vice A frequent yers President; wants to assistant; books her monitor reservations reservations
Mountain Goat Software, LLC
Common attributes
Frequent yer who Wants to schedule never knows where her familys annual shell be vacation Frequent yer Frequent yer who ies every week but always to Traveler the same Repeat place Hotel chain Vice A frequent yers President; wants to assistant; books her monitor reservations reservations
Mountain Goat Software, LLC
Common attributes
Frequent yer who Wants to schedule never knows where her familys annual shell be vacation Frequent yer Frequent yer who ies every week but always to Traveler the same Repeat Scheduler place Hotel chain Vice A frequent yers President; wants to assistant; books her monitor reservations reservations
Mountain Goat Software, LLC
Common attributes
Frequent yer who never knows where her familys annual shell be vacation Frequent yer Frequent yer who ies every week but always to Traveler the same Repeat Scheduler place Hotel chain Vice A frequent yers President; wants to assistant; books her monitor reservations reservations
Common attributes
Frequent yer who never knows where her familys annual shell be vacation Frequent yer Frequent yer who ies every week but always to Traveler the same Repeat Scheduler Insider place Hotel chain Vice A frequent yers President; wants to assistant; books her monitor reservations reservations
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
g n i t i r W Stories
A horrible question
Would you like it in a browser?
A problem:
{Yes | No}
A horrible question
Would you like it in a browser?
Of course, now that you mention it!
A problem:
{Yes | No}
We can do better
What would you think of having this app in a browser rather than as a native Windows application, even if it means reduced performance, a poorer overall user experience, and less interactivity?
Increase the temperature. Move the temperature closer to what we call warm.
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 No prioritization at this point
Mountain Goat Software, LLC
Frequent flyer
Frequent flyer
INVEST in s e i r o t S Good
INVEST
Testable
Mountain Goat Software, LLC
Negotiable
Valuable To users or customers, not developers Rewrite (most) developer stories to reect value to users or customers
Copyright Mountain Goat Software, LLC
Complex stories are intrinsically large Compound stories are multiple stories in one Stories need to be testable
Copyright Mountain Goat Software, LLC
s e i r o t S r e s U y Wh
Stories shift the focus from writing to talking. The user will get what she wants
then
Stories shift the focus from writing to talking. The user will get what she wants At best shell get what was written
then
Stories shift the focus from writing to talking. The user will get what she wants At best shell get what was written
then
Examples
The user can enter a name. It can be 127 characters.
The system should prominently display a warning message whenever the user enters invalid data.
Stories are equally understandable by developers and customers. Stories support and encourage iterative development. Stories are the right size for planning. Stories support participatory design.
Mountain Goat Software, LLC
4 5
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 tire mounted to each wheel. 3.The product shall have a steering wheel. 4.The product shall have a steel body.
Source: Adapted from The Inmates are Running the Asylum by Alan Cooper (1999).
Mountain Goat Software, LLC
The product
Most importantly...
Dont forget the purpose The story text we write on cards is less important than the conversations we have.