Product requirements: [Product name]
Replace everything in [brackets] and delete each guidance line once its section is written. The document is done when someone outside the team could build the first release from it, and someone else could check that they did.
01Overview
Two or three lines. If you cannot say what this is and who it is for this briefly, the rest of the document will not fix it.
- Product: [Name]
- Owner: [The person who decides scope questions]
- Status: [Draft / In review / Agreed]
- Last updated: [Date]
- Summary: [What it is, who it is for, and what it replaces]
02Problem
Describe the problem as the user lives it, not as a missing feature. Say what they do today instead, and how you know.
Today, [who] [does what workaround] when they need to [get something done]. It costs them [time, money or risk you have actually observed].
Evidence: [Interviews, support requests, sales calls, your own use. Say which, and how many.]
03Target user
One primary user. Name the moment they go looking for a solution, and who this is not for.
- Primary user: [Role, company size, context]
- Trigger: [The event that makes them look for something new]
- Current alternative: [Spreadsheet, another tool, a person, nothing]
- Not for: [Who this deliberately does not serve, and why]
04Jobs to be done
What the user is trying to get done, in their words. Three to five, most important first.
- Job 1: When [situation], I want to [action], so I can [outcome].
- Job 2: When [situation], I want to [action], so I can [outcome].
- Job 3: When [situation], I want to [action], so I can [outcome].
05MVP scope
What the first release does. Each line should be something a person could watch working.
- [First capability the release cannot ship without]
- [Second capability]
- [Third capability]
06Requirements
One checkable statement per row. Acceptance says how someone would verify it on the running product; a requirement without it cannot be audited. Priority is MoSCoW: Must, Should, Could, Won't. Kind is functional (behaviour), non-functional (speed, uptime, accessibility) or constraint (a regulation, platform or budget).
Keys are permanent. Never renumber or reuse one: tasks, commits and audits refer to them.
| Key | Requirement | Acceptance | Priority | Kind |
|---|---|---|---|---|
| REQ-001 | Users can [do something observable] | [Steps that show it working on a live system] | Must | Functional |
| REQ-002 | [Page or action] responds within [time] at [load] | [How and where it is measured] | Should | Non-functional |
| REQ-003 | [Regulation, platform or budget limit] | [Evidence that it is respected] | Must | Constraint |
| REQ-004 | [Something named but deferred] | [How it would be checked later] | Won't | Functional |
07Success metrics
How you will know the release worked. Name the metric, where it is measured and the target. Leave a target blank rather than invent one.
- Primary metric: [What] measured in [tool], target [value, or set after a baseline]
- Secondary metric: [What] measured in [tool], target [value]
- Guardrail: [A number that must not get worse, such as error rate or refunds]
08Non-goals
What this release deliberately does not do. This section settles more arguments than any other.
- [Something people will assume is included, and why it is not]
- [A second non-goal]
09Open questions
Everything still undecided, with a person and a date. A question with no owner stays open.
- [Question] (owner: [name], needed by: [date])
- [Question] (owner: [name], needed by: [date])
10Sign-off
Who agreed to this version. After this point, scope changes are proposed and recorded, not slipped in.
- Agreed by: [Names]
- Agreed on: [Date]
- Changing scope: [How a change is proposed, and where it is recorded]