Writing specs people read
A spec earns its keep when the people building the feature read it and make the decisions you would have made. This lesson shows you how to test an idea with a working-backwards press release and FAQ, turn it into a one-page PRD, and write goals, non-goals and open questions sharp enough that engineers, designers and vendors act on them.
By the end you can
- Write a one-page press release and FAQ that tests whether an idea is worth building
- Turn it into a one-page PRD with measurable goals and explicit non-goals
- Turn every uncertainty into an open question with an owner and a date
- Layer a spec so each reader finds what they need in the first few minutes
- Run a review where people read before they talk, and record the decision
The everyday picture
A restaurant owner wants a new dish. Before the chef buys a single ingredient, the owner writes the line that will go on the menu: "Grilled fish with lime rice, ready in 15 minutes, mild enough for children." Then she writes down the questions the waiters will get. Is it spicy? Is there a vegetarian version? Why does it cost more than the chicken? If the menu line makes nobody hungry, or the answers are awkward, the dish dies on paper and nobody wastes an afternoon in the kitchen.
If the dish survives, the chef writes the recipe card: quantities, steps, what to do when the limes run out, and what the dish leaves out ("no chilli on the side, we tried it and people sent it back"). Cooks on every shift follow the same card, so the dish tastes the same on Friday night as on Monday lunch.
A product spec has the same two parts. The press release and FAQ test the idea from the customer's side. The PRD is the recipe card the team works from.
Why specs go unread, and who actually reads them
A spec is any document that tells a team what to build and why. The most common kind is a PRD, a product requirements document. Most unread specs fail in the same few ways:
- They are written to win approval, so they argue instead of deciding.
- The first decision appears on page six.
- Problem and solution are mixed, so nobody can tell which parts are fixed and which are open.
- They use words that mean different things to different people: fast, simple, real-time, all, intuitive.
- They go stale in week two, so people stop trusting them and ask in chat instead.
The fix starts with the readers. A spec has several, and each one arrives with a different question and a different amount of patience.
| Reader | What they need first | How long they read |
|---|---|---|
| Sponsor (a director or head of department) | The problem in money or time, the goal, the cost, and the decision you need from them | Two minutes |
| Designer | Who the users are, where they are when they use it, the job they are doing, constraints | Ten minutes |
| Engineers | Scope, business rules, edge cases, non-functional requirements, what is out | All of it, more than once |
| QA and vendors | Acceptance criteria, what "done" means, every decision taken since sign-off | All of it, as a contract |
| Support and operations | What changes for users and when, known limits, who to call | Five minutes, just before launch |
Since readers stop at different depths, put the most decision-heavy content at the top. Journalists call this the inverted pyramid. The first five lines of your spec should let a sponsor approve or reject it without reading further, and every later section should add detail without changing what the top says.
Quick check
Your PRD is 12 pages long. The finance director says she has "no idea what we are asking for". What is the best fix?
She reads the top and stops, so the ask must be at the top. A summary at the end is read last or never. A walkthrough costs an hour and still leaves no written ask. Deleting edge cases hurts the engineers, who need them, and does nothing for the director.
Working backwards: the PR/FAQ
Amazon's best-known planning habit is to write the launch announcement before building anything. Colin Bryar and Bill Carr describe it in Working Backwards (2021): the team writes a PR/FAQ, a press release dated on the imagined launch day, followed by frequently asked questions. The press release is short. The FAQ covers the customer experience and the cost and difficulty of building it, and they say it should be five pages or less. Teams often go through ten or more drafts. In the review meeting, everyone reads the document in silence first, and the most senior people speak last so they do not steer the others.
A press release has a fixed shape, and each part tests something:
- Headline: who gets what benefit. If you cannot write it in one line, the benefit is not clear yet.
- Summary paragraph: what launched, for whom, and the main benefit.
- Problem paragraph: the pain today, in the customer's words and numbers.
- Solution paragraph: how it works from the customer's side. No architecture.
- Leader quote: why the company did this. It tests whether the idea fits the strategy.
- How to start: the first step for a customer. It tests whether adoption is realistic.
- Customer quote: what you hope a user will say. Base it on words you heard in interviews (User interviews that don't lie), so it stays honest.
The FAQ has two halves. External questions are what customers will ask: what does it cost me, what if I have no signal, what if the driver has already left. Internal questions are what leaders will ask: why now, what does it cost to build and run, what must be true for this to work, what are the biggest risks, what are we not doing, how will we know it worked. Put the hardest questions first. An FAQ that dodges the cost question is a sales pitch.
The method works because a vague benefit cannot hide in a press release. "Improves efficiency" reads as empty the moment you put it in a headline, so the team is pushed to find the real benefit or drop the idea, and dropping it costs a few days of writing instead of months of building.
For internal tools, the "press release" is the message the head of operations would send to every store manager on launch day, or the voice note a sales rep would play to shop owners. If you cannot write a message that makes Ama, the store manager, say "finally", rethink the feature before anyone draws a screen.
Quick check
Which headline gives the PR/FAQ review the most to test?
The third names who benefits and by how much, so reviewers can ask whether two days is possible and whether shops care. The first lists features, which says nothing about value. The second sounds big but makes no claim anyone could check.
The one-page PRD
Once the PR/FAQ is approved, write the PRD the team will work from. Keep its core to one page, roughly 500 to 800 words, and link out to research, designs and the story list. Long PRDs feel thorough, but the extra pages are usually screens and wishes that belong in the design file and the backlog.
A one-page PRD has these parts, in this order:
- Summary: the problem, the outcome you want, and what you are asking for.
- Problem and evidence: numbers, two or three quotes, a link to the research.
- Users and context: who, where, on what device, under what pressure.
- Goals and guardrails: outcome metrics with a baseline, a target and a date; one or two guardrail metrics.
- Non-goals: what is deliberately out, with the reason.
- Solution outline: the shape of the solution in a few sentences, plus links to designs.
- Requirements: a prioritised list that points to the user stories (User stories and acceptance criteria), plus the non-functional requirements.
- Risks and assumptions: what must be true, and how you will check it.
- Open questions: each with an owner and a due date.
- Launch and measurement: pilot, waves, and the date of the post-launch review (Launching).
- Decision log: every decision taken after approval, with the date and who decided.
Other good formats use different names for the same ideas. Google's design docs, as Malte Ubl described them in 2020, start with context and scope, then goals and non-goals. Basecamp's Shape Up (Ryan Singer, 2019) asks for a "pitch" with five ingredients: problem, appetite, solution, rabbit holes and no-gos. All of them say what you are solving, how much it is worth to you, roughly how, where the traps are, and what is out.
Goals, non-goals and open questions that do real work
Goals describe a change in the world, measured. Each one needs a metric, a baseline, a target and a date, plus where the number comes from. Write them so that at the post-launch review anyone can say "hit" or "missed" without arguing about what the goal meant.
- Weak: "Improve the claims experience for partner shops."
- Strong: "Median time from delivery to credit note falls from 9 days to 2 days by 31 March, measured in the finance system. Guardrail: credit notes stay below 1.5% of delivered value."
Non-goals are things a reasonable person could expect the project to do, which you have decided it will not do. Google's design-doc guide puts it the same way: things that could reasonably be goals but are explicitly chosen not to be. "The app will not crash" is a negated goal and adds nothing. "No cash or wallet refunds in this release; claims are paid as credit against the next invoice, because refunds need a separate finance approval process" is a real non-goal. It stops a stakeholder from assuming refunds are coming, and it stops a vendor from building them.
Open questions are the uncertainties you know about. Each one gets an owner, a due date and a note on what depends on it. "Can shops claim after the driver has left? Owner: head of DC operations. Due: 14 Nov. Blocks: the late-claim story only." A question without an owner is a hope. Linking each question to the stories it blocks lets the rest of the work start.
Finally, hunt for the slippery words. Replace "fast" with a time on a named device, "all" with a list, "real-time" with a delay ("within 60 seconds of the driver confirming"), and "easy" with a task and a time ("a first-time user can file a claim in under a minute"). Every slippery word left in a spec turns into an argument later, and with a vendor it can turn into a bill.
Quick check
Which line is a useful non-goal for the claims feature?
The first names something people could expect, rules it out and says why, so nobody waits for it and nobody builds it. The others are negated goals or truisms: nobody planned a slow screen or unneeded features, so writing them down settles nothing.
Review, decide, keep it alive
Run the review like Amazon's: start the meeting with 10 to 15 minutes of silent reading, collect comments in the document, then discuss. Silent reading means everyone argues about the same text, and quieter people have time to form a view. End with one of four outcomes: approve, approve with named changes, rewrite, or stop. Write the outcome in the decision log before people leave the room.
After approval the spec becomes a living document. Keep a status line at the top (Draft, In review, Approved, Building, Live), a version, an owner and a last-updated date. When a decision changes, update the decision log, the affected stories and the people who rely on them, in that order. Keep one copy: the tracker links to the spec and the spec links to the tracker (Planning on GitHub shows one way to wire this).
If an outside company builds the feature, the approved PRD and its stories are often attached to the statement of work. From that moment, a change to the spec is also a change to a contract and usually needs a change request (Working with vendors and agencies). That is one more reason to resolve open questions before signing.
Do it
Write a PR/FAQ and a one-page PRD for one feature, using the claims example as a model.
-
Collect the facts before you write a word
Write down the problem in numbers (how often, how costly, for whom), two or three real quotes, and what people do today instead. If you cannot fill this in, go back to discovery (From research to opportunities). Writing will not invent the evidence for you.
-
Draft the press release on one page
Date it on the launch day you hope for. Read the headline aloud to someone outside the team. If they cannot repeat the benefit back to you, rewrite it.
Markdown# Partner shops get credit for missing stock in two days instead of nine ## Report a short or damaged delivery at the door, confirmed by the driver **City, 3 March.** Mangrove Market today launched delivery claims in the Partner app. When a wholesale delivery arrives with missing or damaged cartons, the shop owner marks them in the app while the driver is still there. The driver confirms with his code, and the credit appears on the shop's account within two working days. **The problem.** About 900 deliveries a month arrive short or damaged. Owners phone their sales rep, wait a median of 9 days for a credit note, and a quarter of claims end in a dispute because nobody has proof. **How it works.** Open today's delivery, tap the line, enter the quantity missing or damaged, take a photo, hand the phone to the driver. It works without signal and sends when the phone is back online. "Shops should not have to lend us money while we fix our mistakes," said the head of partner sales. **Getting started.** Update the Partner app. Your sales rep will show you a 2-minute demo on the next visit. "Last month I waited two weeks for 6 cartons of oil. Now I press three buttons and the driver signs it." (Ravi, partner shop owner, quote we hope to hear) -
Write the FAQ, hardest questions first
Answer each question in two to four sentences. Where you do not know yet, say so and turn it into an open question with an owner.
Markdown## External FAQ (partner shops) **What if I find a broken bottle after the driver has left?** You can claim up to 24 hours later with a photo. Late claims are checked by finance, so they take longer (target: 5 working days). **What if there is no signal in my storeroom?** The claim saves on your phone and sends when the phone is back online. ## Internal FAQ (leaders) **What stops shops from inventing claims?** The driver confirms each door claim with his own code; every claim keeps a photo, both names and timestamps. Guardrail: credits stay below 1.5% of delivered value. Claims over $50 need a finance approver. **What does it cost?** Agency build estimate: 7 to 10 weeks (range from discovery). In-house: back-office approval and ERP credit notes, 4 to 6 weeks. Running cost: photo storage, about 1 GB a month. **What are we not doing?** Wallet or cash refunds, quality complaints, claims on customer app orders. **Why now?** Disputed claims are the top reason shops pay invoices late. -
Review it in one meeting
Invite the sponsor, the tech lead, the designer, and someone who does the work today (a sales rep or a store manager). Read in silence for 15 minutes. Discuss the comments. Leave with approve, approve with changes, rewrite, or stop, written down.
-
Write the one-page PRD
Reuse the PR/FAQ's numbers. Every goal has a baseline, target, date and source. Every non-goal has a reason. Every open question has an owner and a date.
Markdown# PRD: Delivery claims in the Partner app Status: Approved v1.0 | Owner: Imran | Updated: 21 Nov | Build: agency + in-house ## Summary 900 short or damaged deliveries a month take a median of 9 days to credit. We will let shops claim at the door with driver confirmation. Ask: approve agency SOW (7 to 10 weeks) and 4 to 6 weeks of the back-office team. ## Users and context Shop owners on their own low-cost Android phones, at the shop door or in a storeroom with weak signal, driver waiting. Finance approvers on desktop. ## Goals (source: finance system, measured weekly) - Median delivery-to-credit: 9 days -> 2 days by 31 March - Claims with photo and driver confirmation: 0% -> 85% by 31 March - Disputed claims: 25% -> 10% by 30 April - Guardrails: credits < 1.5% of delivered value; driver time at door +30 s at most (p90) ## Non-goals (this release) - No wallet or cash refunds: credit only (refunds need a treasury process) - No quality complaints (taste, freshness): support line handles them - No changes to the driver route app ## Requirements Stories and acceptance criteria: tracker epic CLAIMS-1 (12 stories). Non-functional: works offline for a full day; claim screen opens in under 1 s on our slowest supported phone; only drivers can confirm; full audit trail. ## Open questions | # | Question | Owner | Due | Blocks | | 3 | Do DC stock counts adjust automatically? | DC ops lead | 28 Nov | ERP story | ## Launch: pilot 25 shops (north DC), then waves by DC. Review: 15 April. ## Decision log | 14 Nov | Late claims allowed up to 24 h, photo required, manual review | Imran, head of DC ops | -
Keep it alive
Every time a decision changes, add a decision-log row, bump the version, update the stories and post a one-line note in the team channel. If the work is under contract, check whether the change needs a change request before anyone builds it.
Bring it to your team
Ask these in the next spec review, out loud.
- If our sponsor reads only the first five lines, can they approve or reject this?
- What is the baseline for each goal, and where exactly does the number come from?
- Which guardrail would tell us we are winning the goal in a harmful way?
- What might a stakeholder assume we are building that we are not? Is it in the non-goals?
- Which open question has no owner or no date, and which stories does it block?
- Which words in here could two people read differently: fast, all, real-time, easy?
Red flags
- The first decision appears after page three.
- Goals are outputs ("launch the module") rather than outcomes.
- No non-goals, or only negated goals ("it won't be slow").
- Engineers ask questions in chat that the spec should answer, and the answers never reach the spec.
- The vendor signed a scope that still contains open questions.
Practice
Fix a spec paragraph before it causes arguments
A department head sent this paragraph as "the spec" for a Store app feature:
"We need a better stock transfer feature so stores can send stock to each other. It should be fast and easy, work in real time and support all transfer types. Store managers want it ASAP. Phase 1 should include approvals, notifications and reports. It must be intuitive."
Facts you can use: about 2,600 store-to-store transfers a month across 320 stores, done today on paper slips that a clerk types into the ERP; about 1 in 8 transfers has a quantity mismatch between sender and receiver; the receiving store waits a median of 3 days for the transfer to show in its stock. Rewrite it as (a) one or two goals with baseline, target and date, (b) three non-goals with reasons, (c) three open questions with an owner and due date, and (d) a measurable replacement for each vague word.
- Each goal is an outcome with a baseline, a target, a date and a data source
- At least one guardrail is named
- Non-goals are things someone could reasonably expect, each with a reason
- Each open question has an owner role, a date and what it blocks
- "Fast", "easy", "real time", "all" and "intuitive" are each replaced with a number, a list or a task
Show a model answer
Goals. Mismatched transfers fall from about 12% to under 3% by 30 June (source: ERP transfer records). Median time from dispatch to stock showing at the receiving store falls from 3 days to same day by 30 June. Guardrail: time to prepare a transfer at the sending store does not rise above today's (measure in the pilot).
Non-goals. No transfers between DCs and stores in phase 1 (different paperwork, handled by DC systems). No automatic transfer suggestions (needs demand data we do not have yet). No reports beyond one list of open transfers per store; head office reports come from the data warehouse.
Open questions. Who approves a transfer above a value limit, and what is the limit? (Owner: head of store operations, due 10 Mar, blocks the approval story.) Who carries the stock in transit, the sender or the receiver? (Owner: finance controller, due 10 Mar, blocks the ERP posting story.) Do transfers need to work offline at the receiving store? (Owner: Imran, with two store visits, due 7 Mar, blocks the receiving story.)
Vague words. Fast: scanning a carton shows the next line in under 1 second on the store handheld. Easy: a new staff member completes a 10-line transfer in under 3 minutes without help. Real time: the transfer appears at the receiving store within 1 minute of dispatch when both are online. All transfer types: a list (store-to-store standard and urgent; returns to DC are out). Intuitive: removed, covered by the "easy" task.
Write the headline, summary and two hard FAQ answers
Store prices change overnight. Today staff print new shelf labels on a back-office printer and walk the aisles to swap them, about 140 labels per store per day. When a label is missed, the shelf price and the till price differ, and the customer complaint log shows about 2,000 price complaints a month across 320 stores. The proposed feature: staff scan a shelf label with the handheld and print the new label on a belt printer they wear. Write the press-release headline, the summary paragraph, and answers to the two hardest internal FAQ questions you can think of.
- The headline names who benefits and how, with a number if possible
- The summary says what launched, for whom, and the main benefit in plain words
- The two FAQ questions are genuinely hard (cost, risk, what must be true), and the answers are honest about what is unknown
- No architecture or feature lists in the press release
Show a model answer
Headline: "Shelf prices match the till in every store by 9 am." Summary: "Store staff can now fix a shelf label where they stand. They scan the old label with their handheld, and the belt printer prints the new one on the spot. No more walking back to the office printer, and no more customers charged a different price from the one on the shelf."
Q: What does it cost? About 2 belt printers per store, so roughly 640 printers plus label stock; the hardware quote is pending (owner: procurement, due 15 May). Software work is small because the price feed already exists. Q: What must be true for this to work? Staff must find every changed label, not only the ones they pass. So the handheld needs a list of today's changes by aisle, and we will check in the pilot that complaints actually fall, since some mismatches may come from till data, not labels.
Check yourself
Leaders like a PR/FAQ, but the internal FAQ answers "What will this cost to build and run?" with "TBD". What should happen before the PRD is written?
The FAQ exists to expose what could change the decision, and cost often does. A range is enough at this stage. Writing the PRD first invests more work in an idea that might fail on cost. A fixed price before discovery forces the vendor to guess, and the guess will include a large risk margin.
An agency developer asks whether the claims screen must handle part of a carton, such as 3 broken bottles out of 12. The PRD says nothing. What is the best response?
A gap in the spec becomes an owned decision written where everyone, including the vendor, will see it. Leaving it to judgement creates a hidden decision that may be wrong. "Every case" is unbounded scope. Finding out in UAT turns a quick question into a defect-versus-change argument late in the project.
Which goal lets a post-launch review say "hit" or "missed" without debate?
Only the first has a metric, a baseline, a target, a date and a guardrail. The second has no numbers. The third is an output: you can launch on time and change nothing for shops. The fourth is a feeling with no measure attached.
Flashcards
Key takeaways
- Test the value first with a one-page press release and an FAQ that puts the hardest questions first. Weak ideas should die on paper.
- Keep the PRD's core to one page, with the decision-heavy summary at the top, because every reader stops at a different depth.
- Goals have a metric, baseline, target, date and guardrail. Non-goals rule out reasonable expectations, with reasons.
- Every open question has an owner, a date and the stories it blocks. Replace slippery words with numbers, lists and tasks.
- After approval, the spec lives: status, version, decision log. Under a vendor contract, a spec change is a contract change.
Sources and further reading
- An insider look at Amazon's culture and processes, excerpt from Colin Bryar and Bill Carr, Working Backwards, Amazon, 2021
- Design Docs at Google, Malte Ubl, 2020
- Shape Up: Write the Pitch, Ryan Singer, Basecamp, 2019
- Colin Bryar and Bill Carr, Working Backwards, St. Martin's Press, 2021