User stories

A user story is a short note of who wants to do what with a product and why, kept as a reminder to talk and agree when the work is done.

13 min read

Reviewed by Ravi SuranaUpdated

Quick answer

~20 sec

A user story is a short note that names a person, something they want to do with a product, and why it matters to them. Product teams keep it on a card or ticket. The note is not the full requirement. It reminds the team to talk with that person and agree how to know the work is finished.

011 min

What goes wrong without user stories

Picture a team that builds a grocery delivery app. A support agent reports that customers keep phoning to move their delivery to another time. The product manager passes the request to the engineers as one line in a long requirements document.

The system shall support modification of the delivery time slot.

An engineer reads the line and adds an editable time field to the internal admin screen. The line is correct, and the result is useless, because customers never see the admin screen. The line says what the system does. It does not say who needs the change or why, and nobody can ask the author what it meant.

So the engineer guessed, and the team found out at release. Long specifications fail this way in every field: the sentence no longer names the person, and the reader guesses what is missing. Teams needed a requirement short enough to read in seconds, that names the person and makes questions easy to ask. That is the job of a user story.

021 min

Where user stories came from

The fix came from a payroll project, not from a product company. Kent Beck introduced user stories in 1997 on the Chrysler C3 project in Detroit. A year later Alistair Cockburn visited the project and described a story as a promise for a conversation.

The idea was given a structure in 2001. Ron Jeffries proposed that a story has a card that holds the idea, a conversation between the people involved, and a confirmation that the work is done.

Mike Cohn says the pattern began with the agile coach Rachel Davies at Connextra, a company in the UK, in the early 2000s. Bill Wake added a checklist for judging stories in 2003, covered below.

The project where stories began

C3 stood for Chrysler Comprehensive Compensation, a payroll system. Development of C3 began in 1994, with the aim of running payroll for 87,000 employees by 1999. Beck was brought in during 1996 because the system had not yet printed a single paycheck. The team then adopted the practices that became extreme programming, or XP, a method that plans, builds and tests software in very short cycles. The system launched a couple of months after its one-year delivery target. The delay came from unclear business requirements, which is the kind of unclear need that a short card and a conversation are meant to resolve.

032 min

How user stories work: card, conversation, confirmation

User stories work in three parts, and the delivery team shows each of them. This time the product manager writes the request on a card.

As a customer with a booked delivery, I want to move it to another time slot, so that I do not have to phone support.

The card is the first part. It holds the idea and nothing more, because the details are not decided yet. Mike Cohn warns teams against treating the written sentence as the whole requirement: it is a reminder, and the full requirement comes out of the conversation that follows.

The conversation is the second part. The product owner reads the card aloud, and the developer asks what happens when the slot is already full. They agree that a customer can pick only slots that still have room, and that a delivery can be moved until the order is packed. The developer now knows more than any specification line would have told them, and the product owner learned about the full-slot case before it reached a customer.

The confirmation is the third part: the checks that show the story is done. The next section covers it.

PartWhat it isWho takes partIn the delivery example
CardA short written reminderWhoever raises the needThe one-sentence note above
ConversationTalk that fills in the detailsProduct owner, developer, testerWhat happens when the slot is full
ConfirmationChecks that show the work is doneProduct owner and testerA customer moves a delivery and the new slot appears on the order
cardproduct ownerdeveloperslot is full?
Look at who speaks: the question about a full slot comes from the developer, and it comes while the card is on the table.

042 min

How to write a user story sentence

A user story card is easiest to write when it follows one pattern: as a role, I want a goal, so that a benefit. The delivery card above uses it. Each part answers one question.

PartQuestion it answersIn the delivery exampleCommon mistake
RoleWho needs this?A customer with a booked deliveryWriting "the system", or "user" with no kind of user
GoalWhat do they want to do?Move the delivery to another time slotNaming a screen or a control instead of a goal
BenefitWhy does it matter to them?So that I do not have to phone supportLeaving it out, or repeating the goal

Keep the solution out of the goal. "I want a dropdown of times" decides the answer before anyone has talked. "I want to move my delivery" leaves the team free to choose a dropdown, a calendar or something better. Chris Matts proposed putting the benefit first, "in order to" before the role, so the team starts from the value.

The roles and goals come from people, not from the team's imagination. User interviews with customers, and conversations with the support staff who hear from them, produce most of the cards. A persona, a profile of a typical user, can supply the role. Customers rarely say exactly what they need, so listen for the goal behind the request.

A template filled in without thinking

A pattern does not make a good story. In a 2016 study of how practitioners use stories, a developer who disliked them said business people use the template to repackage an old requirement. Cohn gives the same warning: the template is a thinking tool, not a guarantee. A quick test is to cover the "so that" clause. If nobody would notice it gone, it was filler, and the story is still the old requirement.

052 min

How a team confirms a user story is done

A user story card also needs a way to show it is finished. The team writes acceptance criteria: a short list of outcomes that works as a checklist for the work. For the delivery card, the product owner and a tester write them before building starts.

  • A customer can pick only slots that still have room.
  • A customer can move a delivery until the order is packed.
  • The new slot appears on the order page.
  • The old slot becomes free for other customers.

Criteria stay few, and each one can be checked by someone who did not write the code. They are usually kept on the back of the card or under the ticket.

Acceptance criteria on a government service

The UK government sets out this practice in its service manual. The UK government's service manual says teams building a service must use user stories. Its example for the Register to vote service lists three outcomes: the user knows how to register online, the user knows how to download a form to register by post, and the user knows where to send the form. None of them names a screen or a button. Each one is something a person can check by asking whether the user now knows it.

Writing criteria as scenarios

Some teams write each criterion as a scenario. Dan North described the form of these scenarios as a starting situation, an event, and the outcomes that must follow. His example was a story about taking cash from a cash machine, which needs two scenarios. In the first scenario the account is in credit, the customer asks for cash, and the machine debits the account, dispenses the cash and returns the card. In the second scenario the account is overdrawn past its limit. The same request now shows a rejection message, dispenses no cash, and still returns the card.

Both scenarios share the same event and some outcomes. They differ only in the starting situation, and that difference is why the story needs both.

in creditaccount is debitedcash is dispensedcard is returnedoverdrawnrejection messagecash is not dispensedcard is returned
The two windows start from the same request. Compare what each one ends with, and notice that the card comes back in both.

062 min

INVEST: what makes a user story good

A user story can have clear criteria and still be hard to plan. Bill Wake gave teams a checklist for that in 2003, and named it INVEST after its six letters.

LetterQualityWhat to check
IIndependentCan the team build it before or after the other stories?
NNegotiableDoes it state the need and leave the details to talk?
VValuableWould a customer notice the result?
EEstimableDoes the team understand it well enough to size it?
SSmallIs it at most a few person-weeks of work, and for some teams a few days?
TTestableCould someone write a test for it?

Negotiable matters most for the conversation. A story is not a contract for features, since the customer and developer work out the details while they build.

Slice across the layers

Say the delivery team splits the card into three jobs: change the database, build the service, build the screen. None of them is useful alone, and the customer can use nothing until the last one is finished. Wake advises splitting a large story across all the technical layers, so that each piece works from the screen down to the database. Cohn's checklist asks the same thing: has the team avoided splitting a story only by technical layer?

Smaller stories, better estimates

Size also affects planning. When a developer says a story will take more than a month, it often means they do not yet understand what it involves. Wake notes that smaller stories tend to give more accurate estimates.

Splitting has a cost

Wake also warns that split stories must be put back together to deliver the full functionality. Splitting is worth it when it separates high-value parts from low-value ones, so the team can drop or delay the low-value part. Splitting a story into pieces that all must ship together only adds cards.

071 min

How user stories feed the backlog and sprints

Once stories pass that check, the team has to decide which to build first. Teams keep the cards in a product backlog, an ordered list of what to build next. They move the most valuable cards into the next sprint, a work cycle of fixed, short length.

To size a card, many teams give it story points, a number from the Fibonacci sequence: 1, 2, 3, 5, 8 or 13, with 1 for the simplest story. Points rank stories by relative effort and do not stand for hours. A very large story is called an epic. It waits in the backlog until the team has split it, and related stories can be grouped into a theme.

A long, flat list has a weakness: the team cannot see the product as a whole. Jeff Patton found that a story map keeps a team focused on the whole product instead of one story at a time. His map arranges the stories under the activities that users go through, so the team sees the full journey before arguing about one piece.

082 min

Where user stories do not work well

User stories have limits that the teams who use them should know.

Needs that no user asks for

Stories rarely include performance or other non-functional requirements, which are the qualities a product needs apart from its features. So tests such as response time can be overlooked. A team fixes this by adding such needs as acceptance criteria, or as their own cards. Work with no end user at all, such as moving a database, fits a story badly, and most teams write it as a plain task.

The conversation needs a person

The second part of a story depends on someone who knows the business and has time to talk. At C3, the customer representative, a key role in XP, resigned from burnout and stress a few months after launch and could not be replaced. Without that person, a card goes back to being a vague sentence that developers must guess at.

The evidence is thin

The Wikipedia article on user stories says there is no good evidence that they raise software success or developer productivity. The strongest study found is a survey. Lucassen and colleagues collected 182 survey responses from practitioners and held 21 follow-up interviews. Respondents agreed that stories, the template and INVEST improved their own productivity and the quality of their work. That is opinion, not a measured outcome, and respondents who used INVEST were more positive, which could mean INVEST helps or only that careful teams like both. Treat the benefits as likely and unproven.

092 min

User stories vs. nearby concepts

Several other documents sit close to user stories and get mixed up with them.

ConceptWhat it isWhat separates it from a user story
Use caseA description of the interactions between a system and the people or systems that use itA use case lays out the interaction up front. A story is a reminder, and the detail comes from conversation.
PersonaA profile of a typical userA persona says who the person is. A story says what that person wants to do.
Jobs to be doneThe progress a person wants to make in a situationA job starts from the situation. A story starts from a role and a goal.
Requirements specificationA full written list of what a system must doA specification tries to be complete. A story is deliberately incomplete until the team talks.
TaskA unit of technical workA task is work for the team. A story is an outcome for a person.

If the question is what a person needs done, write a story. If the interaction itself must be documented step by step, such as for a safety review, write a use case as well. Teams that gather requirements and constraints often use that work as the input for their first stories.

101 min

How to run user stories this week

A team can start with user stories in one working week. The result is a ranked backlog of cards, each with a few criteria.

  1. List who uses your product, as kinds of people. Use your personas if you have them.
  2. Talk to two or three of those people, or to the support staff who hear from them.
  3. Write one card for each goal, in the pattern: as a role, I want a goal, so that a benefit. Delete any word that names a screen or a control.
  4. Check each card against INVEST. Split anything that is more than a few weeks of work, and split it across the layers.
  5. For each card you will build next, hold the conversation with a developer and a tester. Write three to five acceptance criteria on the back.
  6. Order the cards by value, and size them in story points.

You need index cards or a spreadsheet. When there are many cards, the UK government's service manual suggests a digital tool such as Trello or a spreadsheet. Run the first conversation before you finish the whole list, because the first conversation shows whether the cards are too thin or too large.

?3 questions

Questions people ask

Who writes user stories?

Anyone who knows the need can: a customer, a user, a manager or a developer. In Scrum the product owner usually keeps the backlog in order, so they check that each story is clear before the team takes it on.

Do user stories replace documentation?

No. Ron Jeffries suggests starting with the card, the conversation and the confirmation, and adding other documents only when they are clearly needed. Some products still need written rules, such as safety or legal duties.

Can user stories be used outside software?

Yes. The Agile Business Consortium says they are useful in business change, marketing, HR, service improvement and digital transformation projects, because any project with a backlog benefits from a short note of who needs what and why.

§12 sources

Sources

  1. Wikipedia. Chrysler Comprehensive Compensation System.

  2. Jeffries, R. Essential XP: Card, Conversation, Confirmation.

  3. Cohn, M. User Stories: What They Are, How to Write Them, and Examples. Mountain Goat Software.

Show all 12 sources
  1. Cohn, M. User Story Template: What It Is and Why It Works So Well. Mountain Goat Software.

  2. Wake, B. (2003). INVEST in Good Stories, and SMART Tasks. XP123.

  3. Wake, B. Twenty Ways to Split Stories. XP123.

  4. GOV.UK Service Manual. Writing user stories.

  5. North, D. Introducing BDD.

  6. Lucassen, G., Dalpiaz, F., van der Werf, J. M. E. M., & Brinkkemper, S. (2016). The Use and Effectiveness of User Stories in Practice. REFSQ 2016.

  7. Patton, J. The New User Story Backlog is a Map.

  8. Agile Business Consortium. What are User Stories?

Keep reading

More from Product

All of Product
All of Product

Missing a concept?

Tell us what to write next. We’ll email you when it’s live.

Several? Separate them with commas.

Only to tell you when it’s live.

How we use your email: privacy.