A user story is a short, plain-language description of a change, told from the perspective of the person who benefits from it: “As a returning customer, I want to sign in with my email, so that I can see my order history.” It is deliberately not a specification. The card holds a promise to have a conversation, and the detail arrives when the team refines the story, writes its acceptance criteria, and sizes it.

Everything else in this guide operates on stories. They are what planning poker sizes, what story points attach to, and what gets split when the estimate won’t converge. A team that writes bad stories will estimate badly no matter how well it runs the session, because the inputs are where the trouble starts.

The format: role, goal, benefit

The classic shape dates to Connextra, a London XP team, around 2001:

As a [role], I want [goal], so that [benefit].

The three slots of a user story: role, goal and benefit ONE CARD, THREE JOBS As a role who gets the value — a specific person, never "a user" I want goal the capability in their words — what they do, not how it's built so that benefit the reason it's worth doing — it survives one honest "why?"
Three slots, three jobs. Fill all three honestly and the card earns its place in the backlog; drop the benefit and it’s just a task in disguise.

Three slots, and each one is doing a job.

  • The role names who gets the value. “As a user” is the format’s most common failure: a story that could be about anyone is a story nobody actually checked with. Name the specific person — the returning customer, the integration developer.
  • The goal is the capability in the user’s terms, describing what the person does rather than how the system is built. “I want to reset my password” is a goal. “I want a password-reset microservice” is a design decision wearing the format.
  • The benefit is the clause teams drop first, and it is the one that earns the card its place in the backlog. The “so that” is the story’s argument for being scheduled. If nobody can finish it, the work has no case, and writing the clause down is how you find that out before the sprint starts instead of after.

Card, conversation, confirmation

Ron Jeffries condensed how stories work into three Cs, and the ordering matters.

The three Cs of a user story: card, conversation, confirmation Card Conversation Confirmation a reminder, too small to hold it all where the requirement actually lives pass / fail acceptance criteria
The card is deliberately too small to hold the requirement — which is exactly what forces the conversation, and then the confirmation that says whether the work is done.

The card is a token — a sentence or two, small on purpose. Its size is a feature: it physically cannot hold a full requirement, which forces the next C to happen.

The conversation is where the requirement actually lives. The team and the product owner talk the story through in backlog refinement: the edge cases, and what’s explicitly out of scope. Teams that skip this and treat the card as the requirement get the worst of both worlds — a document too thin to build from, and no conversation because “it’s already written down.”

The confirmation is the acceptance criteria: the pass/fail conditions that say whether the finished work delivers what the conversation agreed. The user story template chapter shows the two formats that work, and the acceptance criteria chapter covers writing them in depth.

The INVEST checklist

Bill Wake’s 2003 checklist is still the fastest way to test whether a story is ready to work on. A good story is:

  • Independent — schedulable on its own, without dragging three other stories into the sprint with it.
  • Negotiable — the card invites a conversation; scope can still move. A story with every detail fixed is a requirement wearing a story’s clothes.
  • Valuable — the “so that” clause holds up under one honest “why?”.
  • Estimable — the team can put a number on it. A story nobody can size is carrying an unknown; run a spike to find it.
  • Small — fits in a sprint with room to spare. If it doesn’t, split it.
  • Testable — you can write acceptance criteria that pass or fail. “The page feels faster” fails this; “results load in under a second” passes.

Estimable and small are where stories meet the rest of this guide. A wide vote spread in planning poker is usually an INVEST failure surfacing late: the story was negotiable in ways nobody negotiated, or too big for anyone to see all of it.

What a user story is not

Not a task. A story delivers something a user can see; a task is a step the team takes to get there. “Sign in with email” is a story. “Set up the session store” is one of its tasks. The epic vs story vs task chapter covers the hierarchy, and why points belong at the story tier only.

Not a requirement document. A requirement aims to be complete before work starts. A story aims to be sufficient to start the conversation and no more. Judging stories by requirement standards (“it’s too vague!”) misses the design: the vagueness is a reserved seat for the team’s judgment.

Not a promise of implementation. The story fixes the outcome; the team owns the how. When a story arrives with the solution pre-decided, the negotiable part of INVEST is already gone.

When user stories are the wrong tool

The format has limits, and pretending otherwise costs credibility with the people who have to write the awkward ones. Some work has no user in the sentence:

  • Deep platform work. “As a developer, I want to upgrade the framework, so that the framework is upgraded” says nothing the ticket title didn’t. Write it as plain technical work with a named outcome: what breaks or slows down if this doesn’t happen, and what gets easier when it does.
  • Bugs with a known cause. A defect report (expected behaviour, actual behaviour, steps to reproduce) is a better native shape than a retrofitted story. The story points chapter covers when bugs get pointed.
  • Research spikes. A spike is a question plus a time-box, and its output is knowledge. Forcing it into role-goal-benefit obscures the one thing that matters: what the team needs to learn.
  • Compliance work. You cannot negotiate scope with a regulator. The requirement is the requirement; write it down as one.

What transfers to all of these is the discipline, not the sentence shape: a stated reason the work matters, and a testable definition of finished. Keep those and the format has done its job even where it doesn’t apply.

Where stories meet estimation

A story is the unit of estimation. Once it’s written, the path runs through this guide: the team discusses it, sizes it in story points with planning poker, checks it against the definition of ready, and splits it if the vote won’t converge. A well-formed story makes every one of those steps faster, which is the practical reason to care about the format at all.

To see the format applied, the user story examples chapter walks through sixteen annotated stories, good and bad. To write your own, start from the template.

Frequently asked questions

What is a user story?

A user story is a short, plain-language description of a change, told from the perspective of the person who benefits: “As a returning customer, I want to sign in with my email, so that I can see my order history.” It is deliberately not a specification. The card is a placeholder for a conversation, and the detail arrives when the team refines and sizes the work.

What is the user story format?

The classic format is role-goal-benefit: “As a [role], I want [goal], so that [benefit].” The role names who gets the value, the goal names the capability in the user’s terms, and the benefit is the argument for scheduling the work at all. If nobody can finish the “so that” clause, the story has no case for being in the backlog.

What are the three Cs of user stories?

Card, conversation, confirmation. The card is a reminder, deliberately too small to hold the requirement. The conversation is where the requirement actually lives, in refinement with the team. The confirmation is the acceptance criteria that say, pass or fail, whether the finished work delivers what was discussed.

What does INVEST stand for?

Independent, negotiable, valuable, estimable, small, testable. It is Bill Wake’s checklist for whether a story is ready to work on. The last three carry the most weight in practice: a story the team cannot estimate, that will not fit a sprint, or that no test can confirm is a story that is not ready yet.

When should you not use user stories?

When the format adds ceremony instead of clarity. Deep platform work, bug fixes with a known cause, compliance requirements, and research spikes all have better native shapes. Keep the benefit clause and the acceptance criteria; skip the “as a developer, I want” costume when there is no user in the sentence.