A user story is a testable unit of value, not a feature description. 68% of engineering re-requests trace back to missing or vague acceptance criteria (Scriptonia, 2026) — the part of user stories that most PMs skip or write vaguely.
"The format isn't the problem. 'As a, I want, so that' is fine. The problem is that PMs write stories at the wrong level of specificity — too abstract to test, too broad to estimate."
— Sofia G., Engineering Manager at a B2B SaaS startup
The user story format that engineers actually use
The standard format: As a [specific persona], I want to [specific action] so that [measurable outcome].
What "specific" means in each part:
- Persona: Job role + context. "Admin managing 10+ seat team" not "user".
- Action: Observable, testable behavior. "Export a 30-day CSV" not "see my data".
- Outcome: Why it matters. "Share with my VP without giving them system access" not "save time".
Acceptance criteria: the part that actually prevents rework
Every user story needs 3–5 acceptance criteria in the Given/When/Then format:
- Given [context], When [action], Then [expected result]
- Example: "Given I am an admin with Export permission, When I click Export CSV, Then a CSV file downloads containing all activity from the selected date range"
- Example: "Given the date range spans more than 90 days, When I click Export CSV, Then the system shows an error: 'Exports are limited to 90 days'"
The user story anti-patterns that cause sprint failures
| Anti-pattern | Problem | Fix |
|---|---|---|
| Vague persona ("user") | Engineers can't make edge case decisions | Specify role and context |
| Activity instead of outcome | "I want a dashboard" describes UI, not value | State what the user accomplishes |
| No acceptance criteria | No definition of done for QA | Write 3–5 Given/When/Then criteria |
| Compound stories | "I want to create AND manage AND delete" = 3 stories | One action per story |
| No edge cases | Engineers encounter them at 2am | Document at least 2 per story |
How many user stories should a PRD have?
A well-scoped PRD for a single feature should have 4–8 user stories. More than 10 usually means scope is too broad. Fewer than 3 usually means the stories are at the wrong abstraction level (too high-level to be testable). Each story should take 1–3 sprint days to implement.