Agile Requirements
Requirements as conversations

Learn your way to the right thing to build.

A practical coaching guide to Agile requirements—from the mindset behind them, through discovery and decomposition, to proven story formats and the refinement habits that keep a backlog healthy. Every concept is grounded in one running example you can follow from first principle to acceptance test.

The card that started it all

As a persona / user, I want functionality so that benefit / value.

One sentence, three slots. Nearly every format in this guide is a variation on the same idea: filling the right blanks for the right situation. The card is not the requirement—it is a promise for a conversation.

The running example

Follow along with PennyWise

Concepts stick when you watch them play out on a single, concrete problem. Throughout this guide, a teal PennyWise callout shows the idea applied to one product, so the whole site reads as one continuous worked example.

PennyWise · the running example

The product: PennyWise is a mobile banking app. The outcome we care about: reduce fraud write-offs by 30% in Q1. The feature we'll trace end to end: instant card freeze—a cardholder can lock a lost or suspicious card in seconds and unlock it later.

Watch this one feature travel from outcome → job → journey → map → slice → story → acceptance test as you move down the page.

Part 01

Foundation: why we work this way

Traditional requirements assume we can know everything upfront. Agile recognizes that understanding emerges through building, feedback, and learning—so we optimize for outcomes and shared understanding, not for documents.

The Agile mindset for requirements

Agile requirements are about learning your way to the right outcome, not predicting it upfront. In practice that means pairing product, engineering, and QA early, validating assumptions quickly, and refining detail closer to delivery.

  • Requirements as conversations, not contracts
  • Progressive elaboration, where detail emerges just in time
  • Shared understanding over comprehensive documentation
  • Validated learning, with assumptions tested through delivery
  • Value-driven prioritization, doing the most valuable work first
PennyWise

Features are hypotheses for reaching the outcome. Instant card freeze is a bet that giving cardholders a fast, trusted action will cut fraud losses. We'll ship a thin slice, measure, and refine—rather than specifying the whole fraud suite upfront.

From documents to conversations

Big Requirements Documents assume certainty early and go stale fast. Agile teams replace them with structured conversations and lightweight artifacts—story maps, example-mapping notes, acceptance tests, telemetry—so knowledge stays current and shared. Traceability doesn't live in one file; it's distributed across stories, tests, code, and analytics, held together by the conversations that produced them.

The Three C's framework

Ron Jeffries introduced the Three C's as the foundation of agile requirements:

C1

Card

A token for planning and conversation. Just enough text to identify the need. The card is a promise for a future conversation, not a detailed spec.

C2

Conversation

The dialogue between team, product owner, and stakeholders. This is where details emerge, edge cases are discovered, and solutions are explored.

C3

Confirmation

Acceptance criteria that make the story testable. They define the story's boundaries and how we'll know it is done.

PennyWise

Card: "Freeze / unfreeze my card." Conversation: fraud scenarios, device authentication, issuer limits. Confirmation: freeze succeeds in ≤2s, an audit entry is recorded, and rate limiting is enforced.

Progressive elaboration

Rather than defining everything upfront, we shape requirements at the right time. The farther an item is from delivery, the broader it stays; as delivery nears, we add the detail needed to design, build, and test—no earlier.

  • Distant work stays high level (epics, features)
  • Near-term work gets refined (user stories)
  • Current sprint work carries full detail (tasks, acceptance criteria)
PennyWise

Epic: reduce fraud write-offs 30% in Q1. Feature (slice 1): freeze a card from the card screen, audit the action, enforce a simple rate limit. Stories: freeze happy path · unfreeze happy path · audit view · rate-limit edge case—only the next sprint's stories are fully specified.

Cost of delay & why we slice small

Cost of Delay is the economic impact of postponing delivery. Large batches delay both value and learning. When we slice smaller, we shorten feedback loops and start the flow of value sooner—which is exactly why thin, vertical slices beat big-bang releases.

  • Faster feedback loops, so you learn what works quickly
  • Earlier value delivery, so users benefit sooner
  • Reduced risk, with a smaller investment per experiment
  • Better predictability, because small things are easier to estimate
PennyWise · putting a number on the delay

Once it's live, card freeze prevents roughly $5,000/day in fraud loss. Cost of Delay is just that daily figure multiplied by how long the capability stays unbuilt—so the lever is how soon any of it goes live, not how polished it is. Compare two ways to deliver the same feature:

Big bang · nothing live for 56 days
$280,000
56 days × $5,000/day. No value flows until the entire fraud suite ships in week 8.
Sliced · core freeze live at day 14
~$105,000
Loss avoided over the 42 days you'd otherwise still be waiting—captured six weeks sooner.

Where the ~$105k comes from—and why it isn't $210k. The thin first slice is not the whole feature, so it doesn't earn the full $5,000/day. But the freeze action itself is what actually stops the charges; the later slices (audit, rate-limit, issuer-retry) mostly harden it. Credit slice 1 with about half the benefit and it earns 42 days × $5,000 × 50% ≈ $105,000 that the big-bang plan simply forgoes. The exact fraction is a judgment call—the point is that you start capturing value in week 2 instead of week 8, without waiting for the whole suite.

The goal is to find the smallest piece that delivers value and validates assumptions—the Minimum Valuable Increment.
Part 02

Discovery: understanding what to build

Techniques for discovering user needs and business opportunities before a single story gets written—each one a different lens on the same question: what progress is the user trying to make?

Customer Jobs (Jobs to be Done)

JTBD theory states that customers "hire" products to make progress in a situation. The same person has many jobs depending on context; we design for those situations and desired outcomes, not for demographics.

Functional jobs

The practical task. "Stop charges on a card I can't find."

Emotional jobs

How customers want to feel. "Feel safe and in control."

Social jobs

How customers want to be perceived. "Look responsible with money."

Customers don't want a quarter-inch drill (feature). They want a quarter-inch hole (job)—and ultimately to hang a picture so their home feels welcoming (emotional job).
PennyWise · the job statement

When I misplace my card, I want to disable it immediately, so I can prevent unauthorized charges. Notice the format names no feature—"freeze" is just one way to do this job.

Persona development

Use lean, evidence-based personas to align on goals, constraints, and environment. Avoid stereotypes; tie each story to a real segment. Effective personas capture context, goals, pain points, technical proficiency, and current behavior.

PennyWise · meet Sam

Sam, 29, freelance designer. Cares about cash-flow continuity, lives on mobile, and dreads a push alert at a bus stop—not at a desk. Dislikes support calls and delays. Every freeze decision should make sense for Sam, on a phone, in a hurry.

User journey mapping

Journey maps visualize the end-to-end experience of accomplishing a goal—the sequence of steps, the emotions, and the pain points—revealing where a thin slice can deliver outsized value. A map covers phases, actions, thoughts and emotions, touchpoints, and opportunities.

Discover
Decide
Act
Verify
Resume
Actions
Gets a suspicious-charge push alert
Opens app, finds the card
Taps Freeze, confirms with Face ID
Sees "Frozen" + audit entry
Unfreezes later or reorders a card
Emotion
Touchpoints
Push alert
Card screen
Freeze buttonFace ID
Status badgeAudit log
UnfreezeReorder
Opportunities
Deep-link from alert
Card front-and-center
One-tap freeze
Instant confirmation
Easy unfreeze

PennyWise's freeze journey. Anxiety spikes at Decide and stays high through Act—so the biggest opportunity is a single, fast, trusted freeze action, not polishing secondary screens.

Story mapping

Jeff Patton's story mapping arranges stories along the user journey (the horizontal backbone) and by release or priority (vertical). Start with a walking skeleton—the minimum set of stories that makes the whole flow work—then deepen.

Activity: Protect my card
Review
Freeze
Verify
Unfreeze
See card status
Freeze from card screen
Basic audit entry
Unfreeze with confirm
Recent transactions
Rate limiting
Audit history view
Issuer-timeout retry
Risk-based prompts
Freeze from alert
Fraud-team notify
Auto-reorder card

Read left to right for the journey (the backbone), top to bottom for priority. The first band is PennyWise's walking skeleton: the smallest set of stories that makes freeze genuinely usable.

Impact mapping

Gojko Adzic's technique keeps delivery aligned with strategy by mapping four levels—Goal (why), Actors (who), Impacts (how their behavior changes), and Deliverables (what we build). If a deliverable can't trace its branch back to the goal, it's scope creep.

  • Goal30% fewer fraud write-offs in Q1
    • ActorCardholders
      • ImpactFreeze a card within 60s
        • DeliverableOne-tap freeze UI
        • DeliverableDevice-auth confirm
      • ImpactTrust the action worked
        • DeliverableInstant status + audit entry
    • ActorSupport team
      • ImpactHandle fewer freeze calls
        • DeliverableSelf-service freeze/unfreeze

Each branch answers a question: why, who, how, what. PennyWise's freeze UI earns its place because it traces straight back to the 30% goal.

Example mapping

Matt Wynne's technique discovers acceptance criteria through a structured conversation using four colors of cards: the story (yellow), the rules that must hold (blue), concrete examples that illustrate them (green), and open questions (red) that drive spikes or decisions. Too many cards means the story is too big.

Yellow · StoryFreeze my card
Blue · RuleOnly primary owner can freeze; device auth required
Green · ExampleOwner + Face ID → frozen in ≤2s
Red · QuestionWhat happens to pending transactions?
PennyWise

Rules: only the primary owner can freeze · device auth required · max 3 actions per hour. Example: owner + biometrics → success in ≤2s; a 4th attempt within the hour → blocked with a clear "try again at…" message.

Specification by Example

Capture the behavior as concrete examples so the team's understanding, implementation, and verification all point to the same truth. It removes ambiguity, creates executable specifications, and turns into living documentation.

Instead of "validate the freeze action," specify: owner + biometrics = frozen in ≤2s, 4th action this hour = rejected with a clear message, issuer timeout = retried then surfaced.
Part 03

Decomposition: breaking down the work

How to break large ideas into increments small enough to deliver and learn from—and how to tell a good slice from a bad one.

Planning levels

Planning happens at matching horizons. Each level chooses a different unit of work and a different question to answer.

Portfolioyears / quarters
Choose outcomes and bets. Which problems are worth funding, and how are Lean budgets allocated?
Program IncrementPI · 8–12 weeks
Plan the increment. Which features can the train commit to and demo this PI?
Sprintdays / weeks
Pull Ready stories. What can we finish with clear acceptance criteria?

From epic to task

Work nests across planning horizons. This guide follows SAFe Essential, where the planning cadence is the Program Increment (PI)—typically 8–12 weeks, or several sprints, that an Agile Release Train commits to and demos together. Each level below fits inside the one above it.

EPIC
Spans multiple PIs. A significant initiative carried by a lightweight business case—too big to finish in a single Program Increment."Customer self-service portal"PennyWise: Reduce fraud impact
FEATURE
Fits within a single PI (several sprints). A capability that delivers value, sized with a benefit hypothesis and acceptance criteria."Password reset capability"PennyWise: Instant card freeze
STORY
Fits within a single sprint. A vertical slice that delivers value and is independently testable."As a user, I can reset my password via email"PennyWise: Freeze from the card screen
TASK
Hours, not days. The technical work to complete a story."Create reset API endpoint"PennyWise: Add card_status_changed event
Terminology varies by framework. The sizes here are conventional rules of thumb, not hard rules—and the levels themselves differ between schools:
  • SAFe Essential — Epic → Feature → Story → Task (the ladder this guide follows).
  • Full SAFe — inserts a Capability between Epic and Feature at the large-solution level.
  • Mike Cohn, User Stories Applied — Epic → Story → Task, treating an epic as simply a large story to split.
  • Jira — Epic → Story → Sub-task by default; with Premium (Advanced Roadmaps) an Initiative (and optionally Theme) sits above Epic.

The SPIDR slicing method

Mike Cohn's SPIDR gives five strategies for splitting a story that's too big. When a story fails INVEST, reach for one of these.

S

Spike

Separate research from implementation
BeforeFreeze cards across every card issuer AfterSpike issuer freeze APIs · Implement the chosen issuer
P

Paths

Split different user paths through the functionality
BeforeUser can freeze a card AfterFreeze from card screen · Freeze from fraud alert · Freeze via support
I

Interfaces

Separate different UI interfaces
BeforeFreeze a card on any surface AfterMobile app · Web banking · Watch complication
D

Data

Split by data types or sources
BeforeAudit every account action AfterAudit freeze events · Audit unfreeze · Audit failed attempts
R

Rules

Separate business rules or conditions
BeforeEnforce all freeze policies AfterOwner-only freeze · Rate limiting · Joint-account approval

More slicing patterns

  • Workflow steps. Each step becomes a story: review card → freeze → confirm → unfreeze
  • CRUD operations. Create, read, update, delete as separate stories
  • Happy path first. Owner freezes successfully before edge cases and failures
  • Simple before complex. Manual freeze → freeze from alert → risk-based auto-prompt
  • Defer performance. Freeze that works, then the optimized sub-2-second version
PennyWise · slice order

Freeze happy path → Unfreeze → Audit view → Issuer-timeout retry → Rate-limit edge case. Each slice goes UI → API → data → telemetry, so every one is shippable on its own.

Vertical vs horizontal slicing

Preferred

Vertical slicing

Each story cuts through every layer to deliver working functionality. "Freeze from the card screen" includes UI, API, and database—one complete, usable story.

Avoid

Horizontal slicing

Splits the work into one story per layer—a DB story, then an API story, then a UI story. No single story delivers anything a user can touch, and value waits until the final layer lands. Prefer vertical slices, even minimal ones.

Making stories INVEST-able

Bill Wake's INVEST criteria are a quality bar for smooth flow, not a checklist to fill. When a story fails one, reach for a slicing technique.

I
Independent
Can be built in any order
N
Negotiable
Details emerge in conversation
V
Valuable
Delivers value to users or business
E
Estimable
The team can size it
S
Small
Fits in a sprint
T
Testable
Clear acceptance criteria
Before · a task in disguiseImplement card state management.
After · INVEST-ableAs Sam, I can freeze my card from the card details screen so I can block unauthorized use.

Sequencing with WSJF

Slicing tells you how to make work small; WSJF (Weighted Shortest Job First) tells you what order to build it in. It's SAFe's prioritisation formula, and every Product Owner should be able to read one—it turns the Cost of Delay you saw earlier into a running order for the backlog: do the work with the most value per unit of effort first.

WSJF= Cost of DelayJob Size = User-Business Value + Time Criticality + Risk Reduction / Opportunity EnablementJob Size

Score each column relatively—a modified Fibonacci scale (1, 2, 3, 5, 8, 13…), comparing items against one another rather than in absolute units. Highest WSJF goes first. Because Job Size is the denominator, a small job with real value beats a big one: the economic case for thin slices, made explicit.

PennyWise backlog item Value Time crit. Risk / opp. = CoD Job size WSJF
Freeze from card screen do first 8852137.0
Rate limiting 2381326.5
Audit history view 323832.7
Freeze from fraud alert 5521252.4

Read the bottom two rows together: "freeze from fraud alert" carries a higher Cost of Delay (12) than the audit view (8), yet ranks below it—because it's a bigger job. That is WSJF working as intended. It doesn't make the call for you; it puts the trade-offs in the open so the order can be defended.

Part 04

The format library

Thirteen ways to write a requirement. Filter by category, study the template, and expand each card for its purpose and a worked example—several drawn straight from PennyWise.

User Stories

The classic agile format, capturing functionality from a user's perspective: who, what, and why.

As a persona/user, I want functionality so that benefit/value.
Purpose & example
  • Keeps development user-centered
  • Ensures clear value delivery
  • Facilitates conversation about requirements
  • Helps prioritize by user value
PennyWise example

As Sam (primary cardholder), I want to freeze my card with one tap so I can stop suspicious charges immediately.

Jobs to be Done (JTBD)

Focused on the underlying job or outcome customers are trying to achieve, not a specific feature.

When situation/trigger, I want to motivation, so I can expected outcome.
Purpose & example
  • Uncovers deeper customer motivations
  • Avoids solution bias
  • Identifies competing solutions
  • Focuses on customer progress
PennyWise example

When I misplace my card, I want to disable it immediately, so I can prevent unauthorized charges.

Job Stories

A hybrid combining JTBD thinking with user-story structure, emphasizing situational context over personas.

When context/situation, I want to action/goal, so that expected outcome.
Purpose & example
  • Removes persona assumptions
  • Highlights triggering situations
  • Focuses on context and causality
  • Captures emotional and social factors
PennyWise example

When a suspicious push alert appears, I want a single, trusted action to freeze my card, so I can feel safe in seconds.

Feature Injection Stories

An inverted format that starts with business value and works backward to features.

In order to achieve value/goal, as a stakeholder, I want feature/capability.
Purpose & example
  • Ensures business value drives features
  • Prevents feature creep
  • Aligns development with business goals
  • Enables value-based prioritization
PennyWise example

In order to cut fraud write-offs 30% in Q1, as a fraud product manager, I want an instant self-service card freeze.

Persona Stories

Narratives about a specific user type—context, goals, and pain points—that guide story creation.

Persona name is a role who needs goals but faces challenges in context.
Purpose & example
  • Creates empathy with users
  • Guides feature prioritization
  • Ensures consistent experiences
  • Informs design decisions
PennyWise example

Sam is a freelance designer who needs to stop fraud the moment it's spotted but faces it on a phone, on the move, with no patience for support calls.

Scenario Stories

Complete workflow descriptions with multiple steps and interactions, often broken into smaller stories.

Scenario: name. User performs action sequence to achieve goal through steps.
Purpose & example
  • Captures end-to-end journeys
  • Identifies integration points
  • Reveals dependencies
  • Validates user journeys
PennyWise example

Scenario: Lost card. Sam opens an alert, finds the card, taps Freeze, confirms with Face ID, and sees a frozen status with an audit entry—through a 4-step flow.

Technical Stories

Stories addressing technical debt, infrastructure, or architecture without direct user-facing value—each tied to a visible behavior or metric.

Action/task to technical outcome because reason.
Purpose & example
  • Manages technical debt
  • Improves system performance
  • Enables future features
  • Maintains system health
PennyWise example

Make the freeze API idempotent because duplicate taps on a flaky connection must never double-charge state or corrupt the audit log.

Enabler Stories (SAFe)

Technical foundation work supporting future user stories. Four types: Infrastructure, Architecture, Exploration, and Compliance.

Enabler type: description of work to enable future capability.
Purpose & example
  • Builds technical runway
  • Reduces future implementation risk
  • Ensures architectural alignment
  • Addresses compliance requirements
PennyWise example

Architecture Enabler: add an event-driven card-status service to enable real-time freeze, audit, and fraud-team notifications.

Constraint Stories

Stories defining boundaries, limitations, or non-functional requirements the system must adhere to.

The system must constraint in order to reason/compliance need.
Purpose & example
  • Defines non-functional requirements
  • Ensures compliance
  • Sets performance boundaries
  • Clarifies system limitations
PennyWise example

The system must complete a freeze within 2 seconds in order to meet the trust bar set during journey mapping.

Gherkin Stories (BDD)

Behavior-driven format describing behavior in plain language. Directly translatable to automated tests.

Given initial context When action/event Then expected outcome.
Purpose & example
  • Creates executable specifications
  • Bridges business and technical understanding
  • Enables automated testing
  • Documents behavior clearly
PennyWise example
Given a primary cardholder on a registered device
When they tap Freeze
Then the card becomes Frozen within 2 seconds
And an audit record is written

Spike Stories

Time-boxed research or investigation tasks to reduce uncertainty before implementation.

Research topic/technology for time-box to determine decision/approach.
Purpose & example
  • Reduces technical uncertainty
  • Validates feasibility
  • Informs estimation
  • Explores alternatives
PennyWise example

Research issuer freeze APIs for 2 days to determine whether we can guarantee a sub-2-second freeze across our top three card networks.

Hypothesis-Driven Stories

Stories framed as experiments with clear success metrics, emphasizing learning and validation.

We believe capability for users will achieve outcome. We'll know we're right when metrics/signals.
Purpose & example
  • Validates assumptions
  • Encourages experimentation
  • Defines success criteria upfront
  • Enables data-driven decisions
PennyWise example

We believe one-tap freeze for cardholders will cut fraud write-offs. We'll know we're right when Q1 write-offs drop 30% and freeze-related support calls fall by half.

Improvement Stories (Kaizen)

Stories focused on process and quality improvements that boost team capability. Keep their acceptance criteria measurable.

Improve process/practice by action to achieve team benefit.
Purpose & example
  • Enhances team efficiency
  • Addresses retrospective findings
  • Improves quality
  • Builds team capability
PennyWise example

Improve our deploy process by automating freeze-path smoke tests to achieve zero-downtime releases of the card service.

Part 05

Quality gates

Acceptance criteria define a story's boundaries. Definitions of Ready and Done keep the whole pipeline honest.

Writing good acceptance criteria

Acceptance criteria express externally visible behavior. Three common formats:

  • Scenario format, written as Given / When / Then
  • Checklist format, a list of conditions to meet
  • Rule format, business rules that must be satisfied

Whatever the format, good acceptance criteria are testable (they clearly pass or fail), clear (no ambiguity), concise (focused on outcomes), and complete (covering the key scenarios)—cover the happy path and the few edge cases that matter.

PennyWise · freeze acceptance criteria
Given a primary cardholder is authenticated
And the card is Active
When they tap Freeze
Then the status updates to Frozen within 2 seconds
And an audit record is captured
Rule: no more than 3 freeze/unfreeze actions are allowed per hour

Definition of Ready & Done

Definition of Ready

Before a story enters a sprint:

  • Outcome is clear and acceptance criteria are drafted
  • Dependencies and risks identified
  • Sized by the team
  • Fits in a sprint
  • Value understood

Definition of Done

Before a story is complete:

  • Acceptance tests pass; code reviewed
  • Telemetry added
  • Docs updated
  • Security / privacy reviewed
  • Deployed with monitoring; PO accepted
Use a Definition of Ready in spirit, not as a gate. A DoR earns its keep as a shared reminder of what makes a story workable—not as a rigid checklist or stage-gate that blocks the team from starting. Held to the letter, it quietly recreates mini-waterfall hand-offs, leaves stories stuck in refinement, and turns "not Ready" into an excuse to avoid the conversation. If an item is mostly there, talk it through rather than bouncing it back.
Part 06

Continuous refinement

Ongoing practices that keep stories healthy and the backlog ready for sprint planning. Most predictability comes from small, consistent slices—not from perfect estimates.

Backlog refinement practices

Keep a steady cadence—say 60–90 minutes weekly—to clarify the top of the backlog. Each top item should leave refinement INVEST-ready with updated acceptance criteria and any required telemetry noted.

  • Rolling-wave planning, with detail increasing as work approaches
  • Story splitting to break down large stories
  • Acceptance criteria added and clarified
  • Estimation done as a team
  • Priority adjustment based on new learning

Estimation techniques

Planning Poker

Team members reveal estimates simultaneously to avoid anchoring bias. Discussion follows when estimates diverge.

T-Shirt Sizing

Quick relative sizing using XS–XL. Good for an initial backlog assessment.

Affinity Estimation

Silent grouping of stories by relative size. Fast when there are many stories.

The Three Amigos

The Three Amigos pattern brings three perspectives together before sprint planning to build shared understanding and surface edge cases—this is where ambiguity is removed.

Business

Product owner or analyst—why it matters and what value looks like.

Development

Developer—what's feasible and where the risk hides.

Testing

Tester or QA—how we'll prove it works and what could break.

Anti-patterns to avoid

Technical tasks as storiesStories should deliver value, not just describe work.
Stories too largeIf it can't be completed in a sprint, slice it.
No acceptance criteriaWithout them, it's unclear when a story is done.
Prescriptive solutionsStories should state problems, not dictate implementations.
Missing conversationA card without discussion is just a sticky note.
Over-detailing far-future workDetail decays; specify near delivery, not before.
Points over outcomesOptimizing velocity instead of value is a trap.

Team working agreements

Decide how you'll play your own story-writing game—and keep the agreements short, visible, and revisited:

  • Who writes stories and when
  • What "Ready" and "Done" mean
  • How detailed acceptance criteria should be
  • When to split vs when to spike
  • How to handle bugs vs stories
  • How decisions get captured (e.g., ADRs)

The story is just the beginning of the conversation.

The goal is not to write perfect stories. It's to build shared understanding that lets teams deliver value incrementally and respond to learning. Five principles to carry into every backlog:

Start with whyUnderstand the job before defining solutions.
Slice verticallyDeliver working software in small increments.
Embrace conversationStories are placeholders for discussion.
Refine continuouslyRequirements evolve through learning.
Focus on valueEvery story should deliver meaningful progress.