top of page

Use Cases vs User Stories: When to Pick Which

  • Contributor
  • Apr 11
  • 5 min read

User stories and use cases are both ways to capture requirements from the user's perspective, but they're different artifacts with different strengths. User stories are short and conversational; use cases are detailed and structured. The choice between them depends on what you're trying to capture and how the team works.

User Stories

The format is small and conversational:

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

Acceptance criteria:
- [Specific condition]

A typical user story fits on a card. The point is brevity and conversation. The story is a placeholder for a discussion, not a complete specification.

Strengths:

  • Quick to write

  • Approachable for non-technical stakeholders

  • Encourages iteration

  • Fits naturally with agile/incremental delivery

Weaknesses:

  • Lacks structure for complex interactions

  • Edge cases often missed

  • Easy to ship without enough detail

  • Doesn't capture system flows that span multiple steps

Use Cases

The format is detailed and structured:

Use Case: [Name]
Actor: [Who initiates]
Preconditions: [What must be true to start]
Main flow:
  1. [Step]
  2. [Step]
  ...
Alternate flows:
  - [Variation]
Postconditions: [What's true after]

A typical use case is a few pages, with the main flow plus alternates.

Strengths:

  • Captures complex interactions

  • Forces explicit alternate paths and error cases

  • Documents system behavior comprehensively

  • Useful for compliance and audit contexts

Weaknesses:

  • Heavier to write and maintain

  • Can become bureaucratic

  • Less iterative

  • Sometimes over-specifies, locking in solutions

When to Use User Stories

  • Agile development with frequent iteration

  • Small to medium features

  • Teams in close communication with stakeholders

  • Products where requirements evolve through use

  • Most modern web and mobile product development

User stories are the default for most agile teams. They balance brevity with enough structure to capture intent.

When to Use Use Cases

  • Complex multi-step interactions

  • Workflows with many alternate paths

  • Regulated environments requiring documented system behavior

  • Systems integration where flows span components

  • Replacing legacy systems where behavior must be preserved

  • Large-scale enterprise software

Use cases handle complexity that stories don't, at the cost of more writing.

Combining Both

You don't have to pick one.

A common pattern:

  • Write user stories for the day-to-day feature work

  • Write use cases for complex flows or critical scenarios

  • Use cases inform multiple user stories

  • Stories implement parts of use cases incrementally

The two complement: use cases describe the whole picture; stories slice it into deliverable increments.

A Side-by-Side Example

As a user story:

As a customer, I want to receive a refund for a returned item,
so that I'm not paying for something I don't have.

Acceptance criteria:
- Returns processed within 5 business days
- Refund to original payment method
- Confirmation email sent
- Order history reflects the refund

As a use case:

Use Case: Process Customer Return and Refund

Actor: Customer Support Agent
Preconditions:
- Customer has reported a returned item
- Item received at fulfillment center
- Item in returnable condition (per policy)

Main Flow:
1. Agent opens the order in CRM
2. Agent confirms item received in warehouse system
3. Agent verifies return reason against policy
4. Agent initiates refund
5. System charges refund to original payment method
6. System sends confirmation email to customer
7. System updates order status to "Refunded"
8. System logs the action with timestamp and agent ID

Alternate Flows:
A1. Item not in returnable condition:
  - Agent contacts customer to discuss
  - If approved, override required from supervisor
  - Otherwise, return rejected

A2. Refund to original payment method fails:
  - System creates store credit instead
  - Agent confirms with customer
  - Email reflects store credit not refund

A3. Customer no longer has the original payment method:
  - Agent requests alternative payment method
  - Customer provides; refund processed there
  - Confirmation email sent

Postconditions:
- Customer's account reflects the refund or store credit
- Inventory adjusted
- Financial records updated
- Audit log entry created

Same feature, different depth. The story is enough for the team to discuss and start work. The use case captures details that would otherwise emerge during implementation.

When User Stories Aren't Enough

Signs a story might warrant a use case:

  • Multiple system behaviors depending on conditions

  • Important alternate flows

  • External actor involvement (third-party integrations)

  • Complex post-conditions

  • Compliance audit requirements

When you find yourself writing 15 acceptance criteria to capture a story, you probably want a use case.

When Use Cases Are Overkill

Signs a use case is more than needed:

  • Single-step interaction

  • No meaningful alternates

  • Already-understood behavior

  • Iteration would invalidate the detail

Don't write use cases for everything. The maintenance cost is real.

Use Case Diagrams vs. Use Case Text

Use case diagrams (the UML circle-and-stick-figure style) are sometimes useful for overview. They show actors, use cases, and relationships at a glance.

The diagrams aren't the use cases. The text is. The diagram is a navigation aid.

For most teams, use case text matters; use case diagrams are optional.

Job Stories: A Variation

Job stories reframe user stories around situations and motivations:

When [situation], I want to [motivation], so that [expected outcome].

Example:

When my checkout fails because of an expired card, I want to be able to update the card without re-entering my order, so that I don't have to start over.

Job stories work well when the user's situation drives the requirement. They're less role-focused than classic user stories.

Use job stories as a complementary tool, not a replacement.

Avoid Solution-Shaped Stories

A common mistake in both formats: pre-specifying the solution.

Bad: "As a user, I want a dropdown menu in the header showing recent items..."

Better: "As a user, I want to quickly access items I recently viewed..."

The first locks in the UI. The second describes the need; the team designs the UI.

Granularity

Both stories and use cases have granularity questions.

For stories:

  • Each story should fit in a sprint (1-2 weeks)

  • Each story should deliver user value

  • Split stories that are too large by role, workflow step, data type, or platform

For use cases:

  • Each use case is one user goal

  • One use case = one complete interaction

  • Don't bundle unrelated flows into one use case

Maintaining Either

User stories typically don't outlive the sprint they're delivered in. Use cases live as long as the behavior they document.

For use cases:

  • Update when the actual system behavior changes

  • Mark deprecated use cases when functionality is removed

  • Keep alternate flows current as edge cases are discovered

Stale use cases are misleading. Treat them as living documents.

Anti-Patterns

Stories pretending to be use cases. Adding 30 acceptance criteria to a story to capture detail. If the detail is needed, write the use case.

Use cases for everything. Treating every small feature as a use case. Crushing weight of documentation.

Use cases describing implementation. "The system queries the database, then..." That's design, not requirements.

Stories without conversation. Written and thrown over the wall. Defeats the purpose.

Key Takeaway

User stories are short and conversational; use cases are detailed and structured. Stories fit agile iteration; use cases fit complex flows and regulated contexts. Use stories as the default for most product work; reach for use cases when the complexity warrants them. The two complement: use cases describe the whole interaction; stories slice it into deliverable increments. Match the artifact to the need, not to dogma about one being right.

Related reading

Keep learning. This article is part of the Requirements & Business Process Improvement path in the ShiftQuality Learning Center. Elicit, prioritize, and trace requirements that survive reality.

bottom of page