A good user story is the foundation of successful sprint planning. It captures who wants something, what they want, and why it mattersβ€”all in a format your team can estimate, discuss, and deliver.

Bad user stories lead to confusion, wildly different estimates, and features that miss the mark. Good user stories create shared understanding and make planning poker actually work.

Here's everything you need to know.

πŸ“

The User Story Template

As a
[user role]
Who is this for?
I want to
[action or feature]
What do they want to do?
So that
[benefit or value]
Why does this matter?

Real Example:

As a product manager, I want to export estimation results to CSV, so that I can track velocity trends over multiple sprints.
✨

What Makes a Good User Story

User-Focused

Written from the perspective of the person who will use the feature, not the developer building it.

Conversational

Simple language that anyone on the team can understand. Avoid technical jargon.

Specific but Flexible

Clear enough to estimate, but leaves room for technical implementation decisions.

Outcome-Oriented

Describes the desired result, not the technical solution or implementation details.

Sized Right

Can be completed in one sprint. If it takes weeks, break it into smaller stories.

Vertically Sliced

Includes all layers (UI, logic, data) needed to deliver working functionality.

🎯

The INVEST Criteria

A good user story follows the INVEST principles. Use this as your quality checklist.

I

Independent

Stories should be self-contained and not dependent on other stories when possible.

Example

Each story can be developed and delivered separately without waiting for others.

N

Negotiable

Details can be discussed and refined. Stories are not rigid contracts.

Example

The implementation approach can be adjusted based on technical constraints.

V

Valuable

Every story must deliver clear value to users or stakeholders.

Example

Each story answers "Why does this matter to the user?"

E

Estimable

The team must be able to estimate the size and complexity.

Example

Stories have enough detail for the team to assign story points.

S

Small

Stories should be completable within a single sprint.

Example

If a story takes more than 13 points, split it into smaller stories.

T

Testable

Clear criteria exist to verify when the story is complete.

Example

Acceptance criteria define what "done" means for this story.

βš–οΈ

Good vs Bad User Stories

User Story Structure

βœ—
Bad Example

Add login functionality

Problem

No user perspective, no value statement, too vague

βœ“
Good Example

As a returning customer, I want to log in with my email and password, so that I can access my order history and saved preferences.

Why It Works

Clear user role, specific action, explicit value

Scope & Size

βœ—
Bad Example

As a user, I want a complete e-commerce checkout system, so that I can purchase products.

Problem

Too large, contains multiple features, not estimable

βœ“
Good Example

As a customer, I want to add items to a shopping cart, so that I can review my selections before purchasing.

Why It Works

Single focused feature, completable in one sprint

Value Clarity

βœ—
Bad Example

As a developer, I want to refactor the authentication service, so that the code is cleaner.

Problem

No user value, technical task disguised as story

βœ“
Good Example

As a user, I want the login process to complete in under 2 seconds, so that I can access my account quickly.

Why It Works

User-focused outcome, measurable value

Acceptance Criteria

βœ—
Bad Example

As a user, I want to search for products.

Problem

No definition of done, missing acceptance criteria

βœ“
Good Example

As a shopper, I want to search for products by name, so that I can quickly find what I need. AC: βœ“ Search returns results within 1 second βœ“ Results show product image, name, price βœ“ No results shows helpful message

Why It Works

Clear, testable acceptance criteria define done

βœ…

Acceptance Criteria Best Practices

Acceptance criteria define what "done" means. They turn a vague story into something your team can test, estimate, and deliver with confidence.

Use Given-When-Then Format

Structure criteria as scenarios to make them clear and testable.

Example

Given I'm on the search page, When I enter "laptop" and click search, Then I see relevant laptop products within 1 second.

Make Them Testable

Each criterion should be verifiable with a yes/no answer.

Example

βœ“ User receives confirmation email within 5 minutes (testable) βœ— System performs well (not testable)

Include Edge Cases

Don't just define the happy path. Consider errors and boundaries.

Example

βœ“ Empty search shows "No results found" βœ“ Special characters are handled safely βœ“ Results are limited to 50 items

Keep Them Concise

Each story should have 3-5 acceptance criteria. More means the story is too big.

Example

If you have 10+ criteria, split into multiple stories.

🎴

A Complete User Story

User Story #425 pts
As a team member, I want to see the final estimates after the voting round completes, so that I can understand the team's consensus and track our velocity.
Acceptance Criteria
  • βœ“All team member estimates are visible after reveal
  • βœ“Average and median are calculated and displayed
  • βœ“Results can be exported to CSV for record keeping
  • βœ“Team can optionally re-estimate if consensus isn't reached
πŸ”—

How User Stories Connect to Planning Poker

Well-written user stories make planning poker effective. Poorly written stories lead to confusion, wildly different estimates, and wasted time.

Before Planning Poker

  • β†’Stories are refined and follow INVEST principles
  • β†’Acceptance criteria are clear and testable
  • β†’Team has enough context to estimate

During Planning Poker

  • β†’Product Owner reads the story aloud
  • β†’Team asks clarifying questions
  • β†’Each person estimates based on story + criteria

Pro Tip

If your team can't estimate a story, it's usually because the story isn't ready. Send it back for refinement instead of forcing an estimate. Good stories lead to confident estimates.

⚠️

Common Mistakes to Avoid

Technical Tasks as Stories

Fix: Focus on user value, not implementation. "Refactor database" is a task. "Load dashboard in under 2 seconds" is a story.

Epic-Sized Stories

Fix: If a story takes multiple sprints, it's an epic. Break it down into smaller, deliverable pieces.

Missing Acceptance Criteria

Fix: Without clear criteria, "done" is subjective. Always define what complete looks like.

Too Much Detail

Fix: Stories aren't specifications. Leave room for team discussion about implementation.

No User Value

Fix: Every story should answer "Why does this matter to the user?" If you can't answer that, reconsider the story.

Dependent Stories

Fix: Stories should be independent when possible. Dependencies create bottlenecks in planning and delivery.

Quick Reference Checklist

Before You Write

  • β–‘Do you know who the user is?
  • β–‘Do you know what they want?
  • β–‘Do you know why it matters?
  • β–‘Can this be done in one sprint?

After You Write

  • β–‘Does it follow the INVEST principles?
  • β–‘Are acceptance criteria clear and testable?
  • β–‘Can the team estimate it?
  • β–‘Does it deliver user value?

Ready to Estimate Your Stories?

Now that you know how to write good user stories, put them into action with planning poker. Create a free room and start estimating.

Create Free Planning Room