Strategy and planning
Acceptance criteria
Turn P0 requirements into testable conditions, including the edge cases that bite in production.
Engineers implement what is testable. Turn P0 requirements into acceptance criteria — conditions that must hold for the work to be "done." Prefer Given / When / Then or equivalent.
Given a verified user on the billing page
When they click "Download invoice" for invoice INV-1042
Then a PDF matching the amounts shown on screen downloads within 5 seconds
And an audit event invoice_downloaded is recordedThat is a requirement made checkable. "The download should feel reliable" is not.
Edge cases that belong in the doc
Not discovered in prod:
- Empty states, permissions denied, rate limits
- Timezones, currencies, partial failures
- Idempotency on retries; double-submit
- What happens if a dependency is down
- Migration for existing data / existing customers
Example
Feature: "team invites." Happy path is easy. Edge cases that bite: invite to an email that already has an account; invite while seats are maxed; revoke after accept; SSO-required workspace; invite link forwarded to a third party. If the PRD is silent, every engineer invents a different policy — and support inherits the mess.
How reviews should work
A good PRD review is not a slide meeting. Send the doc at least a day ahead. Reviewers leave comments asynchronously; the sync meeting (if any) resolves disagreements, not first-time reading.
Invite: PM, eng lead, designer, someone from support or success, and optionally sales if the feature is customer-facing for deals. Ask each role a different question:
- Eng: what is ambiguous or expensive? what edge cases are missing?
- Design: does the problem match what we heard in research?
- Support: what will users break or misunderstand on day one?
- Sales: which deals does this actually unblock — and which are still blocked?
Silence from a required reviewer is not approval. Set a deadline; escalate.
When asked to design a product, narrate problem → users → goals → non-goals → requirements → risks. That is a verbal PRD. Mention acceptance criteria for one tricky edge case to show you think like someone who has shipped.
Common mistakes
- Happy path only. Invites, seats, SSO and forwarded links disagree in production.
- Adjectives instead of Given/When/Then. Not testable.
- Silence as approval. Set a deadline.
Check yourself
PRD for team invites lists only "user can invite a teammate by email." What's missing? Existing accounts, maxed seats, revoke-after-accept, SSO workspaces, forwarded links.
The eng lead has not commented and the meeting is tomorrow. Approved? No. Silence is not approval. Deadline, then escalate.
Key takeaways
- Acceptance criteria make P0 behavior testable. Given / When / Then beats adjectives.
- Put edge cases in the doc: empty, permissions, retries, dependency down, migration.
- Review async first. Each role answers a different question. Silence is not approval.
Further learning
Next: keep the doc alive in living PRDs.
Related
PRDs, PR/FAQs and specs
Writing product requirement docs and Amazon-style PR/FAQs that align teams.
Requirements vs specs
Product owns observable behavior. Engineering owns how it is built. Mixing them too early locks the wrong decisions.
Writing a PRD
A short doc that answers problem, users, metrics, non-goals and P0 behavior — sized to the bet.