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 issuerAfterSpike issuer freeze APIs · Implement the chosen issuer
P
Paths
Split different user paths through the functionality
BeforeUser can freeze a cardAfterFreeze from card screen · Freeze from fraud alert · Freeze via support
I
Interfaces
Separate different UI interfaces
BeforeFreeze a card on any surfaceAfterMobile app · Web banking · Watch complication
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
UI
API
DB
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
UI
API
DB
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
8
8
5
21
3
7.0
Rate limiting
2
3
8
13
2
6.5
Audit history view
3
2
3
8
3
2.7
Freeze from fraud alert
5
5
2
12
5
2.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.