Thinkr

Craft

The PRD an Engineer Actually Wants

Engineers do not read a spec top to bottom. What they skip, what they re-read, and the five things they wish were in there and usually are not.

Galang Aulia · 5 min read
Craft

Engineers do not read a PRD the way it was written. A document composed top to bottom — context, then problem, then solution, then requirements — gets read in roughly the opposite order, in short targeted passes, with most of the front half skipped.

That is not disrespect. It is that they are not deciding whether to build the thing; that decision arrived with the ticket. They are trying to find out what constrains the build, and everything that does not constrain it is, for their purposes, preamble.

Knowing which parts those are changes what is worth your effort.

How it actually gets read

Three passes, and only the first is linear:

  1. What am I building? Thirty seconds, skimming for the shape. Usually the TL;DR and any screen list.
  2. What constrains it? A hunt. Scope boundaries, acceptance criteria, anything with a number in it, anything that mentions another system.
  3. What is ambiguous? The list of questions to ask you before starting — which, if the spec is full of open branches, is long enough to become a meeting.

Then during the build they return, repeatedly, to two or three sections. Those returns are where a PRD earns or loses its keep.

What gets skipped

None of this is wasted — it serves other readers, and some of it is how the work got approved. But do not expect it to be read by the person implementing:

  • Market and competitive context. Relevant to whether the bet is right, not to how it is built.
  • The vision paragraph. Skipped almost universally.
  • Persona narratives. "Sarah is a busy operations manager who…" reliably gets skimmed; the concrete permission rule three paragraphs later does not, and it is a shame when the second is embedded inside the first.
  • Justification for the work existing. Already settled by the time it reaches a ticket.

The practical implication is not to cut these. It is to stop hiding requirements inside them. A rule buried in a persona story is a rule nobody will find.

What gets re-read

  • Acceptance criteria. The single most-returned-to section in any spec, referenced during the build and again during review.
  • Edge cases and error states. Consulted precisely when the happy path is done and the awkward part starts.
  • Anything with a number. Limits, thresholds, sizes, timeouts. Numbers are load-bearing and get looked up rather than remembered.
  • The out-of-scope list. Read defensively, to check whether something now being asked for was excluded.
  • Data shapes. Field names, types, what is optional.

Five sections. If your PRD is strong in these and thin in the rest, it will land better than the reverse — which is the opposite of how most specs are weighted.

The five things they wish were there

Consistently absent, consistently needed.

1 · An entity model. What things exist, and how they relate. Three lines is enough: a Workspace has many Members; a Member has one Role; an Invitation belongs to a Workspace and may have no Member yet. Most specs describe screens and leave the model implicit, so it gets inferred — and two engineers infer two different models.

2 · Which state is real and which is derived. Is "status" stored, or computed from other fields? This decides whether it can be filtered on, whether it can go stale, and whether it needs a migration. It is invisible in a screen description and expensive to get wrong.

3 · The failure contract for anything external. Every third party has a bad day. Timeout, retries, idempotency, what the user sees while waiting. Absent from most specs and responsible for a disproportionate share of incidents.

4 · What "done" means per requirement. Not for the feature — for each line. A requirement with no testable condition becomes done when someone decides it looks done.

5 · Hard constraints marked as hard. Specs mix regulatory obligations, contractual commitments, and preferences in the same voice. "Must be logged for audit" and "should feel snappy" read identically and are not remotely the same class of thing. Say which is which, because an engineer under time pressure will trade away whatever looks tradeable.

Formatting that helps

Small mechanical things, disproportionate effect.

Tables for rules. Anything with conditions and outcomes belongs in a table. A rule expressed as a paragraph has to be parsed; a rule in a table can be looked up mid-build without re-reading the sentence around it.

IDs on requirements. REQ-14 can be cited in a ticket, a commit message, a code review, and a QA case. Prose cannot. This is the cheapest change on the list and one of the most useful.

Explicit must / should / may. Ambiguity about obligation is ambiguity about priority, and it gets resolved by whoever is closest to the deadline.

One rule per sentence. Compound sentences hide requirements. If a sentence contains two rules, one of them will be implemented and the other will not.

The anti-pattern behind all four is the same: a spec written to be read rather than to be consulted. During a build, nobody reads. They look things up.

What not to do

Do not write the how.

Engineers tolerate gaps far better than they tolerate prescribed implementation. A gap is a question they can ask; a prescribed data structure is a decision taken away from the person with the most context about the codebase — and it is frequently wrong, because it was made without that context.

The line is cleaner than it sounds:

What must be true"An invitation expires 7 days after it is sent, and an expired link explains that rather than 404ing."

How to build it"Add an expires_at timestamp and a nightly cron to sweep the table."

The first is yours. The second is theirs, and offering it unasked is how a PRD gets read with suspicion rather than trust.

The test

One question before handoff:

Could someone build this correctly without talking to me?

Not should they — they will ask questions anyway, and good ones. But if the honest answer is no, not without at least three conversations, the missing pieces are almost certainly among the five above, and they are cheaper to write now than to explain three times next sprint.

Everything else in a PRD is for a different reader. That reader matters too — but they are not the one holding the ticket.

FAQ

What should a PRD include for engineers? An entity model, every state, testable criteria, the failure contract for external systems, hard constraints marked as hard, and an explicit out-of-scope list.

Do engineers read the whole thing? Almost never in order — a skim for shape, a hunt for constraints, then repeated returns to two or three sections.

Should it specify implementation? No. State what must be true. Prescribed implementation is a decision taken from the person with the most context.

How detailed should acceptance criteria be? Detailed enough that two people would agree on whether it passed.

New posts and release notes. No spam, unsubscribe anytime.

Stop shipping foggy PRDs.
Start the critique loop.

Three minutes to sign up. No credit card. Cancel by closing the tab.

Start freeSee pricing