Back to Library
agile

User Stories and Acceptance Criteria

User stories capture requirements from the user's perspective using a simple format. Acceptance criteria define exactly when a story is complete.

agileuser-storiesrequirementsacceptance-criteria

What are user stories and acceptance criteria?

A user story is a lightweight requirement description written from the perspective of the end user, focusing on the value they receive - not the technical implementation. User stories are placeholders for a conversation, not complete specifications.

The Format

As a [type of user]
I want to [perform some action]
So that [I achieve some goal/value]

Examples:

  • As a registered user, I want to reset my password via email so that I can regain access to my account.
  • As a Pro subscriber, I want to see detailed AI explanations for each question so that I can understand why my answer was wrong.

The "so that" clause is the most important part - it states the business value and prevents building features nobody needs.

INVEST Criteria

Good user stories are INVEST:

LetterQualityMeaning
IIndependentCan be delivered without depending on other stories
NNegotiableDetails to be discussed, not a fixed contract
VValuableDelivers value to a user or customer
EEstimableTeam can estimate the effort
SSmallFits in a sprint; can be completed in days
TTestableClear acceptance criteria - we can verify it's done

Acceptance Criteria

Acceptance criteria (AC) define the conditions that must be satisfied for the story to be accepted as done. Two common formats:

Given-When-Then (BDD)

Given a registered user with a verified email
When they click "Forgot Password" and submit their email
Then they receive a password reset email within 2 minutes
And the link in the email is valid for 1 hour
And clicking the link opens a form to enter a new password

Checklist Format

- User receives email within 2 minutes
- Reset link expires after 1 hour
- Form validates new password meets requirements (min 8 chars)
- After reset, user is redirected to login
- Old sessions are invalidated after reset

Acceptance criteria serve dual purpose: define completion for the developer and define test cases for QA.

Story Points

Relative effort estimates assigned to stories using a modified Fibonacci sequence (1, 2, 3, 5, 8, 13, 21). Points represent relative complexity and effort - not hours.

Benefits of relative estimation:

  • Faster than hour estimation
  • Accounts for uncertainty (a 13-point story is uncertain, not just large)
  • Teams improve at relative estimation faster than absolute

Planning Poker: each team member independently picks a card; reveal simultaneously; discuss outliers. Consensus-based estimation.

Epics and Story Decomposition

  • Epic: a large user story too big to fit in a sprint. Decomposed into smaller stories.
  • Feature: a group of related stories delivering a significant product capability.
  • Task: technical subtask within a story (not visible to users; used internally by developers).

Decompose epics by: user type, happy path vs edge cases, CRUD operations, platform (mobile/web), or workflow steps.

Story vs Requirement

User StoryTraditional Requirement
Conversation triggerComplete specification
Written by/with usersWritten by analysts
Small, testable sliceCan be large, vague
Context: why (value)Context: what (function)
Iterative refinementSign-off then freeze

Definition of Ready

A checklist for stories before they enter a sprint:

  • Acceptance criteria written and agreed
  • Estimated by the team
  • Dependencies identified
  • UI designs available (if needed)
  • Technical approach discussed

"Ready" prevents a team from pulling in an incomplete story and discovering mid-sprint that it's blocked.

Interview Angle

User stories appear in architecture interviews when discussing requirements and team collaboration. Key points: the "so that" clause ensures business value, acceptance criteria define testability, and story points enable velocity tracking for sprint planning. Show you understand the difference between a story (user value, conversation trigger) and a task (technical implementation detail). In senior roles, demonstrating how to decompose an epic into deliverable stories shows product thinking.

Recommended Resources