What's Worth Building · Nº 32

What's Worth Building

A field guide to product discovery & judgment

When a capable model can build almost anything you specify, the scarce skill is no longer shipping — it is knowing what deserves to exist. This course treats discovery, prioritization, and metrics as one discipline with one job: reduce your uncertainty about what's worth building as cheaply as possible before you build it, and confirm it as honestly as possible after. You will learn to interrogate feature requests back to the jobs they conceal, kill bad bets while they cost nothing, and read your own dashboards like a hostile witness.

Module 01 Building the wrong thing well

Software teams have spent forty years industrializing execution. Compilers, type systems, tests, code review, continuous integration, cloud primitives, and now models that write competent code from a paragraph of description — every one of those is a tool for building the thing right. There is no comparable stack for deciding what to build. The asymmetry is not new, but it has become decisive: when execution cost falls toward zero and judgment cost stays flat, the ratio of wasted effort shifts entirely into the half of the work that has no tooling.

This module makes the case, names the failure precisely, and sets up the machinery the rest of the course installs. It also introduces the running example you will follow for the next seven modules: a small team building a wine-cellar app for serious amateur collectors, and the request that lands in their inbox on a Tuesday — we should add social sharing.

The most expensive failure

Ask a team where their last year went wrong and you will hear about bugs, a bad migration, an estimate that slipped by six weeks, a dependency that broke in production. These are the failures that generate artifacts: incident reports, red builds, a retro with action items. They are visible because the tooling that detects them is the tooling the industry has spent decades building.

Now ask a different question: of everything the team shipped last year, how much changed anyone's behavior? On most teams nobody can answer, because nothing was set up to answer it. The dominant failure mode in commercial software is not the feature built badly — it is the feature built beautifully, shipped on time, code-reviewed, load-tested, and used by almost nobody. Product judgment is the skill of avoiding that outcome, and it is distinct from every skill your engineering practice is optimized to develop.

The asymmetry in cost is what makes this the expensive failure rather than merely the embarrassing one. A feature built badly for a real need produces complaints, and complaints are a signal — the team iterates, and the second version is better. A feature built well for a need that does not exist produces silence. Silence is indistinguishable from success on a delivery dashboard, so the team ships the sequel. The cost is not the six weeks spent; it is the six weeks plus the maintenance tail plus the opportunity — the bet that was never made because this one occupied the quarter.

Quadrant of product outcomes: right or wrong thing against built well or badly, with wrong-thing-built-well marked as the expensive quadrantRightthingWrongthingBuilt badlyBuilt wellRecoverableReal need, clumsy build.Complaints arrive. You iterate.Cost: rework.The targetRight bet, executed.Behavior changes.Cost: the build.Visibly badNobody wanted it andit broke. Caught fast.Cost: the sprint.The expensive quadrantUnwanted, and flawless.Passes every review.Cost: build + tail + the bet not made.Where product work actually lands
Figure 1.1 — The expensive quadrant. Execution quality on the horizontal axis, judgment on the vertical. The bottom-left cell is cheap because it fails loudly and early; the bottom-right cell is the costly one precisely because good execution suppresses every signal that would have told you the bet was wrong.
Anti-pattern: the feature factory

Feature factory is the name for a team measured on output shipped rather than outcomes changed. Symptom: the quarterly review is a list of things launched, velocity is reported as a number, and nobody in the room can say what any of it moved. Corrective: require every roadmap line to name the behavior it intends to change and the number that would show it — before the build, not in the retro.

Execution is the tractable half

The two halves of product work have diverged in difficulty, and the divergence is structural rather than cultural. Building has a feedback loop measured in seconds: the compiler rejects you, the test fails, the reviewer comments, the canary alarms. Every one of those loops has been tightened over decades, and each tightening compounds — better languages make better libraries make better frameworks make better platforms.

Deciding what to build has a feedback loop measured in quarters, and the feedback that arrives is confounded by everything else that happened in those quarters. You shipped a feature; usage rose 4%; so did the marketing spend, and the season changed, and a competitor had an outage. Nothing about that loop tightens on its own. There is no compiler for a bad hypothesis. The only thing that improves it is deliberate practice against written predictions, which is what the last module of this course installs.

PropertyExecutionJudgment
Feedback latencySeconds to hoursWeeks to quarters
Feedback clarityDeterministic — the test passes or it doesn'tConfounded — many causes, one number
Tooling trendCompounding for forty yearsEssentially flat
Failure visibilityLoud: incidents, red builds, complaintsSilent: a feature nobody opens
Transferable across domainsLargely yesOnly with the domain's evidence

This is not an argument that execution is easy. It is an argument that execution is tractable — that effort spent on it reliably converts into competence, and that the industry has built the machinery to make that conversion efficient. Judgment converts effort into competence far less reliably, which is exactly why it stays scarce while build capacity keeps getting cheaper.

The inverted bottleneck

For most of software's history, the constraint on shipping value was build capacity. Product managers wrote more good ideas than engineering could implement, and the discipline that mattered was queue management: sequencing a backlog that would never be finished. In that regime, mediocre judgment was survivable, because the build queue absorbed the error. A weak idea sat in the backlog for two quarters and quietly expired.

That constraint is dissolving. Frameworks removed the plumbing, cloud removed the provisioning, and capable models now remove much of the implementation itself: a competent engineer with a good specification produces in a week what took a team a quarter. The queue in front of build shortens. The queue in front of what should exist does not, because nothing in that pipeline got faster — customers still take a week to schedule an interview, behavior still takes a month to show up in the data, and the quality of a hypothesis is still bounded by the person writing it.

Line chart showing cost to build falling across eras while the cost of knowing what to build stays flat, crossing at the point where judgment becomes the constraintHighLowCost per unitBespoke codeFrameworksCloudAI assistanceCost to buildCost to know what to buildCrossover: judgment becomes the constraintEach era cut build cost. None of them cut the cost of being right.
Figure 1.2 — The bottleneck inversion. Build cost has fallen through four eras of tooling; the cost of knowing what to build has not moved, because interviews, behavior change, and hypothesis quality are not compressible by better frameworks. Past the crossover, adding build capacity stops adding value and the binding constraint is the quality of the decisions feeding it.

The common misreading is that cheap building makes product judgment less necessary — if a feature costs a week, just build it and see. That reasoning survives exactly as long as your build queue is the only cost. It ignores the maintenance tail, the surface area you now have to secure and support, the conceptual weight every added feature puts on the interface, and the fact that a week of build still consumes the team's attention for a week. Cheap experiments are a genuine gift; cheap commitments are a trap, because shipping is a one-way door that costs nothing to walk through and a great deal to walk back.

Cross-reference — Guide Nº 28, Specs as source

Guide Nº 28 covers the other side of this inversion: when a model can build from a specification, the specification becomes the artifact that carries intent, and writing it precisely is the leverage. That guide teaches how to write the what so it gets built right. This course teaches how to decide the what is worth writing at all. Module 8 hands off directly to it.

One discipline, one job

Discovery, prioritization, and metrics are usually taught as three subjects with three literatures. Treat them instead as one discipline with one job: uncertainty reduction — knowing more, sooner, and more cheaply about whether a bet is right. Discovery reduces uncertainty before you build. Prioritization allocates finite attention across bets whose uncertainty you have now partially priced. Metrics resolve the remaining uncertainty after you build, and honestly enough that the answer can be no.

Two words do a lot of work for the rest of this course, so fix them now. Output is the thing shipped — a cost you incurred. Outcome is the change in behavior it was supposed to cause — the thing you actually wanted. Teams substitute the first for the second because output is countable on Friday and outcome is not. Every anti-pattern in this course is some version of that substitution.

The running example enters

The wine-cellar team builds a logging and recommendation app for serious amateur collectors: roughly 41,000 registered users, 3,410 of whom open the app in a given week and update something. On a Tuesday in March, the request arrives from a founder, forwarded from a customer email and seconded by two sales calls: we should add social sharing. The engineering estimate is six weeks. With AI assistance the team believes it could be three.

Nothing in this course is about whether the team can build it. Assume they can, beautifully. The question the next seven modules answer is whether they should — and by module 8, the honest answer will cost someone their favorite idea.

The load-bearing idea

Reduce your uncertainty about what's worth building as cheaply as possible before you build it, and confirm it as honestly as possible after. Everything else in this course — jobs-to-be-done, fake doors, RICE, North Stars, pre-registration — is an instrument for one of those two clauses.

One more framing worth carrying: the cost of learning that an idea is bad rises steeply with how far the idea has traveled. A conversation kills it for free; a launch kills it for a quarter. Module 4 draws that curve and makes it the operating principle of the whole discipline. For now, hold the one-sentence form — learn it left of the build line — and notice how many meetings you sit in where nobody is trying to.

Module 02 Problem before solution

Requests do not arrive as problems. They arrive as solutions, because the person asking has already done the translation in their head and handed you the output rather than the input. "Can you add a button that exports to PDF" is someone's answer to a question they never said out loud, and the answer may be right, wrong, or the fourth-best of five options they never considered. Your job is to run the translation backwards.

This module gives you two moves — laddering up to the job, laddering down to alternatives — and one discipline: restating whatever survives as a claim that evidence could kill. It also picks up the wine-cellar team's Tuesday request and does exactly this to it, producing the hypothesis the next six modules test.

Fall in love with the problem

The advice is a cliché and the mechanism behind it is not. Problems are durable: collectors have wanted to remember which bottle surprised them since long before there were apps, and they will want it after yours is gone. Solutions are interchangeable and short-lived — a given implementation is one draw from a large space of things that could serve the same job, and it is almost never the best draw, because you made it before you understood the job.

The practical consequence is about hearing, not sentiment. When a team's identity attaches to a solution, disconfirming evidence arrives as an attack on the team, and people do not evaluate attacks — they defend against them. You have watched this happen: the usage numbers are weak, and the meeting becomes a search for reasons the numbers are wrong. Discovery data gets re-segmented until it agrees. The launch gets a second phase. Every one of those moves is intelligent, and all of them are downstream of a prior commitment that made the honest read unthinkable.

Solution love has a reliable tell: the team can describe the feature in detail and the user's situation only in generalities. Ask "who specifically, doing what, when this happens?" and watch whether the answer sharpens or softens. If it softens, the team is attached to a thing they are building, not a problem they are solving.

Anti-pattern: falling in love with the solution

Symptom: the artifact is a mockup rather than a problem statement; the team's language centers the feature ("the sharing flow") rather than the person ("a collector deciding what to open tonight"); disconfirming data reliably produces a methodological objection rather than a decision. Corrective: require every candidate to be written as a job statement first, and appoint someone whose stated job in the review is to name the cheapest evidence that would kill it. Attachment survives argument; it rarely survives a written kill criterion.

Every solution is a hypothesis

A feature idea in its natural state is unfalsifiable. "Users will love sharing" cannot be wrong: love is unmeasured, users is unscoped, and sharing is a category. Nothing you could observe would contradict it, which means no evidence can improve it and no test can end the argument. The first act of discipline is to restate the idea as a falsifiable hypothesis — a claim specific enough that a plausible observation would prove it false.

A workable hypothesis names four things: who (a scoped population, not "users"), what behavior (an action they will take that they do not take now), what magnitude (enough to matter, stated as a number), and by when. The magnitude clause is the one teams skip and the one that does all the work, because without it any nonzero result counts as confirmation.

Unfalsifiable framingFalsifiable rewriteWhat the rewrite risks
Users will love sharingAt least 15% of weekly active cellars will share at least one tasting note in their first month with the featureBeing wrong at 3%
Compliance dashboards will improve our security postureMedian time-to-remediation for critical findings falls from 34 days to under 20 within one quarterMedian time not moving
Onboarding needs workMoving bulk import ahead of manual entry raises 7-day activation from 24% to 30%+Activation staying flat

Notice what the rewrites cost: each one can now fail publicly. That cost is the point. An idea that cannot lose cannot teach you anything, and a roadmap of claims that cannot lose is a roadmap you will defend rather than learn from — a theme module 5 returns to when the roadmap becomes a set of bets.

From your other domain

You already do this. A complaint that survives a motion to dismiss is one that pleads facts specific enough to be contradicted; a claim written to be unfalsifiable is a claim written to avoid discovery. Product hypotheses fail the same test for the same reason — vagueness is not modesty, it is immunity from evidence, and immunity from evidence is the thing you are trying to give up.

The answer smuggled inside the request

Here is the wine-cellar team's Tuesday request, verbatim: "We should add social sharing. Two customers asked on calls this week and one emailed. Instagram-style — let people post their bottles."

Three distinct things are fused in that sentence, and the whole skill is pulling them apart. There is an observation (three people raised something in a week — real signal, unknown meaning). There is a job inference, unstated (something about other people is involved in how collectors use this product). And there is a solution, fully specified and stated as if it were the observation (Instagram-style public posting). The solution arrived first because it is the easiest part to imagine, and it is the part with the least evidence behind it.

Requests deserve neither obedience nor dismissal. The customer is an expert witness on their own situation and a novice on your solution space — they know what is painful, when it happens, and what they tried instead; they do not know what is cheap to build, what else you could do, or what the other 41,000 users need. Treat the situation as testimony and the proposed remedy as argument.

What the requesters actually said

The team went back to the three sources rather than reasoning about the summary. Customer 1, on a call: "I'd love to show my friend Daniel what I opened last weekend — right now I text him a photo of the label." Customer 2: "When I'm buying, I want to know what people whose taste I trust are drinking." The emailer: "My tasting group compares notes on the same vintage and we do it in a WhatsApp thread that's impossible to search."

Three requests, one word, three different jobs — and only the first is about broadcasting anything. This is why the summary was more dangerous than the raw material: the word "sharing" compressed three situations into one solution before anyone examined them.

The request ladder

The mechanism is two questions asked repeatedly. Upward: why do you want that — what would it let you do? Each answer moves toward the job. Downward, from the job: what else could serve this? Each answer widens the solution space the request had collapsed. A solution that survives the ladder — that still looks best after you have seen its siblings — has earned its place. Most dissolve, which is the point: request laddering is cheap and its failure mode is discovering you were about to build the fourth-best option.

Stop laddering up when the next "why" produces a truism. "Because I want to enjoy wine more" is true, useless, and would justify anything; the last rung with teeth is the one that names a situation, a moment, and a stake. Stop laddering down when the options are no longer materially different — three variations on a share button are one option, not three.

The social sharing request decomposed upward into two underlying jobs and downward into four materially different candidate solutionsLadder up — the jobs the request gestures atJob A — signal taste"Show one person I trust what Iopened, so we can talk about it."Job B — buy with less risk"Know what people whose palate Itrust are drinking, before I buy."why?why?THE REQUEST"add social sharing"how else?Public profilesBroadcast feed.Serves A weakly,B not at all.Shareable note linkOne bottle, oneperson, no account.Serves A directly.Ask a friendRequest a pick from3 trusted palates.Serves B directly.Curated listsExpert picks, nosocial graph at all.Serves B, no network.Only one of the four candidates is what the request literally asked for — and it is the weakest fit for either job.
Figure 2.1 — Problem–solution separation. The incoming request sits in the middle, where it arrived: one answer wearing the costume of a question. Laddering up recovers two distinct jobs it had compressed; laddering down surfaces three alternatives the word "sharing" had hidden. Public posting — the literal request — turns out to be the weakest candidate against either job.

The final move is to put the surviving candidate back on trial. Your reframe is not a conclusion; it is a better hypothesis, produced by the same brain that would have accepted the original request if you had been in a hurry. The team's reshaped claim — collectors will request picks from trusted friends before buying — is exactly as untested as "users will love sharing." It is just cheaper to test and more specific about how it could fail.

Four-stage pipeline turning a feature request into a job claim, a falsifiable hypothesis, and a discriminating test1 · Request"add socialsharing"unfalsifiable2 · Job claimcollectors de-riskpurchases usingtrusted palatestestable, not yet scoped3 · Hypothesis15%+ of weeklyactives request apick in month 1who · what · how much4 · Discriminating testfake door +follow-up callscan return "no"ladder up + downadd who / what / magnitudepick the cheapest test that could kill it (m4)
Figure 2.2 — Request to hypothesis. Each stage adds exactly one thing the previous stage lacked: the job claim adds a why, the hypothesis adds who/what/magnitude, and the test adds the possibility of a no. The wine-cellar request is shown at each stage; note that nothing is built until after stage 4 returns an answer.

Module 03 Discovery as evidence, not opinion

Discovery is not a stage in a process and it is not talking to users. It is the practice of buying evidence about a named uncertainty at the lowest price that will still change your mind. Everything in this module follows from that definition: a job statement is the unit of what you are uncertain about, a non-leading interview is a way of buying evidence without contaminating it, and the say-do gap is the reason some evidence is worth far less than it appears.

The wine-cellar team leaves module 2 with a hypothesis about trusted-palate recommendations and no evidence beyond three anecdotes. This module designs the conversations that could kill it — and names the failure mode where a team runs those conversations perfectly and learns nothing, because the decision was already made.

Jobs to be done

The frame is simple and the discipline is in the details: people hire a product, in a specific context, to make progress they care about. The unit of discovery is therefore not a persona and not a feature — it is a job to be done, written as context, motivation, and desired outcome. "Wine collectors aged 35–55 with disposable income" is a demographic; it predicts nothing. "When a bottle surprises me at a restaurant, I want to capture it before I forget the producer, so my next purchase isn't a guess" is a job, and it predicts a great deal — including that whatever you build must work in ninety seconds, in bad light, one-handed, possibly slightly drunk.

A good job statement is falsifiable in the same way a hypothesis is: you can go and find whether people are in that context, whether they take that motivation seriously, and what they currently do instead. That last part — the existing workaround — is the most valuable field in the whole statement, because a job with an ugly workaround is a job someone is already paying for in effort. A job with no workaround at all is usually not a job; it is a preference.

Anatomy of a job statement showing context, motivation, and desired outcome layers filled with a real wine-cellar job, plus the current workaroundAnatomy of a job statementCONTEXTWhen does it fire?Situation, not person.MOTIVATIONWhat progress dothey want to make?OUTCOMEWhat is true after,that isn't true now?WORK-AROUNDtoday?"When a bottlesurprises me atdinner, in badlight, mid-meal…""…I want to captureit before I forgetthe producer andthe vintage…""…so my nextpurchase isn'ta guess."photo ofthe labelin camerarollThe workaround is the price they already pay — and the constraint the solution must beat: 90 seconds, one hand, bad light.
Figure 3.1 — The job statement. Context fixes when the job fires, motivation names the progress sought, outcome states what is true afterwards. The fourth box is the one teams omit and the one that carries the most information: an ugly existing workaround proves someone is already paying for this job in effort, and it sets the bar any solution must clear.

Interviews that don't lead the witness

Three question types produce noise reliably. Future hypotheticals — "would you use a feature that…" — ask a person to simulate their own future behavior, which humans do badly and optimistically, and in the presence of the person who built the thing. Leading questions — "how frustrating is it when you can't share a bottle?" — contain their preferred answer; a leading question cannot disconfirm anything, because the only way to answer it is to accept its premise. Compliment solicitations — "what do you think of this design?" — invite social performance, and interviewees are polite.

One question type produces evidence: past behavior, specifically dated. "Tell me about the last time you bought a bottle you weren't sure about — walk me through what you actually did." This works because it asks for recall of events rather than prediction of intentions, because it can surprise you (the answer might be "I never buy bottles I'm unsure about," which is a finding), and because it produces specifics you can check against behavior in your own data.

From your other domain — with the polarity reversed

Cross-examination and discovery interviewing share a technique and invert the goal. On cross you ask closed, leading questions because you want a specific admission and you already know the answer; the witness is a hostile source and the question is a container for your theory. In discovery you ask open, non-leading questions because you want to be surprised — you are trying to falsify your own theory, not confirm it. The reflex to transfer is control of the record; the reflex to suppress is asking questions whose answers you have already decided.

Two lanes comparing a leading interview and a non-leading interview of the same user about sharing, marking where each answer becomes worthless or load-bearingLeading — same user, same topicNon-leading — same user, same topicQ1"Would you use a sharing feature?"A: "Yeah, definitely, that'd be cool."worthless here — future hypotheticalQ2"How annoying is it that you can't?"A: "Pretty annoying I guess."premise accepted — cannot disconfirmQ3"Here's the mockup — thoughts?"A: "Looks great, really clean."politeness, not evidenceVerdict: three yeses, zero informationQ1"Last unfamiliar bottle you bought —walk me through it."A: "Texted Daniel a photo, waited."workaround found — one person, not a feedQ2"How long did you wait? What ifhe hadn't answered?"A: "40 min. I'd have skipped it."stake quantified — a lost purchaseQ3"How many people would you ask?"A: "Two. Maybe three."scopes the graph — kills the feed designVerdict: a workaround, a stake, and a design constraint
Figure 3.2 — Leading versus non-leading, same user. The left lane collects three agreements and learns nothing, because every question supplied its own answer. The right lane asks only about dated past events and comes away with the existing workaround, a quantified stake (a purchase abandoned after a 40-minute wait), and a scoping fact that rules out a feed design: the trusted graph is two or three people, not an audience.

The say-do gap

The say-do gap is not people lying. It is a structural property of self-report: what someone says is data about their self-image and their model of what you want to hear; what someone does is data about the job. The gap widens in exactly the conditions product teams create — when the behavior is socially flattering ("I'd review my portfolio quarterly"), when the cost of the behavior is invisible at question time (nobody imagines the friction of the fourth step), and when the person is being asked by someone who obviously hopes for a yes.

The practical rule is not "never ask." It is: use stated intent to generate hypotheses and revealed behavior to test them. A user telling you they'd love recommendations tells you the topic is live; it does not tell you they will send one. Ask what they did, not what they would do, and where you must ask about the future, price the answer as a lead rather than a finding.

Bar chart comparing 78 percent stated intent to use sharing against single-digit observed uptake of three comparable shipped features80%60%40%20%0%78%8%4%6%SAID"would use"survey, n=214DID — observed 90-day uptake of three shipped featuresvaluationexportwishliststhe gapis the findingour historical ceiling for opt-in features
Figure 3.3 — The say-do gap, priced. A survey of 214 users returned 78% stated willingness to use sharing. The three most recent comparable opt-in features this team shipped reached 4–8% uptake within 90 days. The gap is not noise to be corrected for — it is the finding: this team's historical ceiling for opt-in behavior is under 10%, which makes any plan built on the 78% a plan built on self-image.
When it misleads

The gap runs the other way too. Users routinely say they do not want something and then use it constantly, because at question time they were pricing a cost (privacy, effort, complexity) that the eventual design removed. Stated rejection is as weak as stated enthusiasm. The asymmetry worth remembering: stated intent is weak evidence in both directions, while a described past behavior is decent evidence in both.

The cheapest test that could change your mind

Order candidate tests by evidence per dollar per day, then apply one filter that eliminates most of them: could a plausible result of this test change what we do? If every outcome leads to the same next action, you are not running a test, you are running a ceremony. A discriminating test is one whose plausible outcomes point to different decisions.

This filter is stricter than it sounds. "Show the mockup to ten users and see if they like it" fails, because there is no result that stops the project — enthusiasm ships it and lukewarm feedback triggers a redesign. "Put a fake entry point in front of 12,000 users and ship only if click-through exceeds 5% and at least 40% of clickers complete the waitlist step" passes, because 3% ends the project. The difference is not rigor; it is that one of them has a losing condition.

TestUncertainty it buys downCostCan it return a no?
Analytics on existing behaviorWhether the situation occurs at all, and how oftenHoursYes — if the situation is rare, stop
8 past-behavior interviewsWhether a job exists and what the workaround costs~4 daysYes — if nobody has a workaround
Clickable prototypeWhether people can use it2–3 daysOnly about usability, never about demand
Fake doorWhether people want it enough to act~4 daysYes — below threshold, stop
Concierge (deliver manually)Whether the delivered value satisfies the job1–2 weeksYes — if manual delivery still doesn't help
Full build and launchEverything, at once, unattributably3–6 weeks +tailYes, but too late to be cheap

Notice the third row. A clickable prototype is a fine instrument aimed at the wrong uncertainty most of the time: it answers "can they use it" when the open question is "do they want it." Matching the instrument to the named uncertainty is most of the skill, and module 4 formalizes it as the fidelity ladder.

Discovery theater

The most sophisticated failure in this module is the team that does everything above and learns nothing, because the decision was made before the research started. Discovery theater is research performed to confirm a conclusion already reached, and it is not usually cynical — it is what happens when a commitment exists and the research is scheduled to satisfy a process gate.

The symptoms are specific enough to check for. The interview guide is written after the roadmap is published. The team demos the design partway through the session, which converts every remaining answer into feedback on a thing rather than testimony about a life. The stated goal is "validation," a word that only points one direction. Nobody can answer "what result would stop this?" — and when pressed, the answers are unfalsifiable ones. And the giveaway: the sample is drawn entirely from users who already like the product enough to answer your email.

Anti-pattern: discovery theater

Symptoms: research scheduled after the commit date; "validation" as the stated objective; demos mid-interview; no written kill criterion; a sample drawn only from enthusiasts. Correctives: write the kill criterion before the first session and circulate it; run at least the first two sessions before any design exists to demo; recruit from users who churned or never adopted, not only from responders; and give one person the explicit role of reporting what the research would have to show to stop the project. If the honest answer is "nothing would stop it," say that out loud and skip the research — the money is better spent on the launch instrumentation you will actually read.

That last corrective is the uncomfortable one and the honest one. A team that has genuinely committed — for strategic reasons, contractual reasons, or because the executive has decided — is better off admitting it than laundering the decision through research. The theater costs real weeks and, worse, teaches the organization that discovery is a formality. Save the instrument for decisions it can actually move.

The wine-cellar team's discovery, run properly: eight past-behavior interviews across two weeks, recruited to include four users who had lapsed. Findings — every one of the eight had a workaround (six texted a specific person, two posted in a group chat); the trusted graph was consistently two to four people, never an audience; and the moment of need was before purchase, in a shop or on a wine list, not after opening. That last finding is the one that reorients the whole bet, and no amount of asking about "sharing" would have produced it.

Module 04 Killing ideas while they're cheap

Every idea will eventually meet reality. The only variable you control is where on its journey that meeting happens, and the cost difference between the extremes is roughly three orders of magnitude: a conversation that ends a bad idea costs an hour, and a launch that ends the same idea costs a quarter plus the maintenance tail plus the credibility. This module is about deliberately arranging the meeting early.

It contains the course's master decision principle — the cost-of-learning curve — a ladder of cheap instruments matched to specific uncertainties, and the organizational problem that makes all of it hard: teams are rewarded for shipping, so the person who kills a bad idea has produced nothing that the incentive system can see.

The cost-of-learning curve

The same lesson — nobody wants this — has wildly different prices depending on when you buy it. In discovery it costs a conversation. In design it costs a week of someone's work and a little pride. After the build it costs the build, and after launch it costs the build plus migration, support, deprecation, the users you trained to expect it, and the quarter you did not spend on something else.

What makes the curve steep is not just accumulated spend. It is accumulated commitment: public statements, roadmap slides, a team's identity, a customer promise made in a renewal conversation. Sunk cost is a fallacy in economics and a fact in organizations — past a certain point, the psychological and political cost of stopping exceeds the remaining cost of continuing, and teams finish things they know are wrong.

Curve showing the cost to change or kill an idea rising steeply across discovery, design, build, launch, and live stages, with the cheap learning zone marked at the leftCost to change or killDiscoveryDesignBuildLaunchLive & depended on1 hour1 week3-6 weeks1 quarterquarter + tailLearn and kill here,while it's cheapthe build lineright of here, commitment compounds:roadmap slides, customer promises, identityThe lesson is identical at every point on this curve. Only the invoice changes.
Figure 4.1 — The cost-of-learning curve. The cost of discovering that an idea is wrong rises roughly three orders of magnitude from discovery to live. The curve steepens sharply at the build line, not only because spend accumulates but because commitment does — public roadmaps, customer promises, and team identity all make stopping more expensive than the remaining work. Every technique in this module exists to move the moment of learning to the left of that line.
The load-bearing idea

Learn it left of the build line. You are not trying to be right more often — you are trying to be wrong more cheaply, which is the only one of the two you can actually control.

Prototypes, fakes, and smoke tests

The instruments form a ladder of increasing fidelity and cost, and each rung answers a different question. Choosing the wrong rung is the most common waste in discovery — not because the test is bad, but because it is aimed at an uncertainty you did not have.

Clickable prototype. Two to three days. Answers: can a person accomplish the task, and where do they stall? Cannot answer: will anyone come. Concierge test. One to two weeks of human effort, no code. You deliver the value manually to a handful of users who know it is manual. Answers: does the delivered value actually satisfy the job? This is the strongest instrument for value uncertainty and the most underused. Wizard-of-Oz test. A real-seeming interface with humans behind the curtain. Answers: does the experience work when it feels automatic? Use when the interaction pattern, not the value, is what you doubt. Fake door. A visible entry point to something unbuilt, measuring who acts. Answers: do people want this enough to click, at what rate, in real context? Cannot answer: will they keep using it.

Running a fake door honestly

A fake door measures a real action against real intent, which is why it works and why it needs a protocol. Three rules make it defensible: immediate disclosure — the click lands on an honest screen saying the feature is not built yet and you are measuring interest, not a fake error or an endless spinner; a value exchange — the user gets something for the click, typically early access, a notification when it ships, or a direct line to talk to the team; and no dark patterns — the entry point looks exactly as prominent as a real one would, and it never takes payment or personal data for a thing that does not exist. A test that requires deceiving your users is not measuring what you think anyway: it is measuring how well you deceived them.

Two practices apply at every rung. First, name the single uncertainty before choosing the instrument — write it as a sentence starting "we don't know whether…" and check that the test discriminates on exactly that. Second, commit the threshold in writing before the data arrives. The number matters less than the order: a threshold set afterward is not a threshold, it is a narration, and every human being on earth will set it just below whatever they observed.

The smoke test that reshaped sharing

The wine-cellar team's named uncertainty after discovery: we don't know whether enough collectors will act on a pre-purchase request to a trusted friend to justify building a two-sided flow. That is demand uncertainty about an unbuilt behavior, which puts the fake door at the right rung. Cost: four days of one engineer and one designer, no production code touched.

The design. A card appeared in the app's browse and search surfaces reading "Ask a friend — get a pick from someone whose palate you trust." Clicking it opened a screen that said, plainly: we're building this. It doesn't exist yet — we're measuring whether it's worth building. Tell us who you'd ask and we'll let you in first. The screen then asked for one thing: the first name of the person they would ask, and an email for early access.

Thresholds, committed in a doc dated before launch and circulated to the founder: ship-worthy requires (a) click-through of at least 5% of exposed weekly actives and (b) at least 40% of clickers completing the follow-up step. Below either, the bet dies or is reshaped; nothing gets built on a partial pass.

The results, and the surprise inside them

Over 14 days: 12,400 exposures to 4,180 unique weekly active users. 6.1% clicked — above threshold. But only 11% of clickers completed the follow-up step, against a 40% bar. Flat fail on the second criterion.

The team then did the thing that separates a smoke test from a metric: they called 22 of the people who clicked and did not complete. Nineteen said some version of the same sentence. They did not want to ask anyone — being the one who asks felt like an imposition on a friend, and naming a specific person made that vivid, which is exactly why the drop-off happened at that field. What they wanted was to see what those two or three people had already logged and rated, without anyone having to be asked anything.

That is a reshape, not a rescue. The original bet — a two-sided request flow — failed its pre-committed threshold and died, on schedule, having cost four days. What replaced it is a different and cheaper thing: a passive "trusted palates" view showing recent bottles from the two to four people you have designated, requiring no request, no reciprocity, and no notification. It is also a new hypothesis with no evidence behind it yet, and the team wrote it down as such.

Swimlane sequence of the fake-door test showing user path, disclosure screen, measurement points, and the pre-committed decision thresholdsAnatomy of the fake doorEntry point"Ask a friend" cardin browse + searchHonest disclosure"Not built yet — we'remeasuring interest."Value exchangename a friend +early access emailFollow-up calls22 clickers who didnot completeMeasuredclick-through: 6.1%threshold 5.0% — PASScompletion: 11%threshold 40% — FAILBoth thresholds written and circulated 14 days before any data existedVerdict: request flow dies (4 days spent). The calls produced the reshape: people want to see, not to ask.
Figure 4.2 — Anatomy of a fake door. Four days, no production code, two measurement points, and both thresholds committed in writing before launch. The click-through passed and the completion step failed — and the twenty-two follow-up calls, not the numbers, produced the reshape: naming a specific person made asking feel like an imposition, so the job is better served by seeing than by asking.
Funnel showing ideas moving from opinion to evidence to validated bet, with the test that earns each promotion and named ideas dropping out at each stageThe uncertainty-reduction funnelSTAGE 1 · OPINIONAnything anyone said. No evidence. Free to hold, expensive to act on.social sharing · cellar insurance · label OCR · sommelier chat · price alerts · trip plannerSTAGE 2 · EVIDENCEA job exists, with a workaround someone already pays for.trusted-palate recs · label OCR · price alertsSTAGE 3 · VALIDATED BETReal action observed against a pre-set bar.trusted palates (passive view)promotion earned by:8 past-behaviorinterviews · 4 daysfake door +22 calls · 4 dayskilled: 3insurance, chat, tripskilled: 2reshaped: 1(request flow died)Six opinions in, one bet out, total cost eight days — and the survivor is not the idea that entered.
Figure 4.3 — The uncertainty-reduction funnel. Ideas are promoted only by a test that could have killed them: interviews promote opinion to evidence by finding a job with a real workaround, and a smoke test promotes evidence to a validated bet by observing action against a pre-set bar. Six ideas entered, five died or reshaped, one survived — for eight days of total cost. The narrowing is the output, not a side effect.

A fast no is a win

The arithmetic is not close. A kill in discovery returns the entire remaining build to the team as capacity, and it does so with the option value intact — the team can now spend those weeks on the next candidate, which has not yet been disconfirmed. Reported honestly, the wine-cellar smoke test produced this: four days spent, six weeks of build avoided, one better hypothesis generated. That is a net gain of over five weeks, and it is invisible to every metric the team reports.

Which is the real problem. Opportunity assessment — the structured case for whether a problem is worth pursuing at all — is easy to teach and hard to practice, because organizations count ships. The person who kills a bad idea has produced an absence, and absences do not appear in demos. Three concrete correctives:

Count kills as output. Put them in the same document as the launches, with the avoided cost stated in weeks. "Killed: ask-a-friend request flow. Cost of learning: 4 days. Build avoided: 6 weeks. Replacement hypothesis generated." A team that reports this quarterly changes what its leadership thinks the job is.

Report the counterfactual, not the disappointment. "We didn't build it" invites the question "so what did you do?" "We spent four days to avoid six weeks on something 41,000 users would not have used, and found a cheaper thing they will" answers it in advance.

Make the backlog shrink sometimes. A backlog that only grows is a symptom, not a workload: it means nothing is ever formally decided against, so every stale idea retains the right to be re-litigated by whoever remembers it. Kill items explicitly, with a date and a reason, and keep them in a separate list. The shadow roadmap of things you declined and why is the most useful document a product team owns and the one almost nobody writes.

Anti-pattern: the backlog that only grows

Symptom: items with two-year-old creation dates; a grooming session that adds more than it removes; the same idea proposed three times by three people because no record exists of why it was declined. Corrective: a standing kill review — every item older than two quarters is either promoted to a test, rewritten as a job statement, or killed with a dated reason. Nothing gets to sit.

Module 05 Prioritization and the roadmap

You now have a shortlist of bets with unequal evidence behind them and a team that can build perhaps three of them this quarter. Prioritization is the act of choosing, and its literature is full of formulas that promise to do the choosing for you. They cannot, and the ones that claim to are dangerous — not because arithmetic is bad, but because a score converts a disagreement between people into a number that ends the conversation before the disagreement has been examined.

This module treats frameworks as what they are: a structure for an argument. Then it takes the output of that argument — the decision — and deals with the harder half, which is communicating it. A roadmap is where your judgment becomes a promise other people plan around, and the choice of what kind of promise to make determines whether the next quarter is spent learning or defending.

Frameworks structure judgment; they don't replace it

RICE is reach × impact × confidence ÷ effort. Reach: how many users encounter this in a given period. Impact: how much it moves the thing you care about per user, usually on a coarse scale (3 = massive, 2 = high, 1 = medium, 0.5 = low, 0.25 = minimal). Confidence: your credence in the other three numbers, as a percentage. Effort: person-months.

Its value is not the output. It is that four people who disagree about a priority discover, within ten minutes, which factor they disagree about — and that is almost always the entire argument. Two people arguing about whether to build recommendations are usually not disagreeing about recommendations; one thinks reach is 40% of users and the other thinks it is 6%, or one holds 80% confidence where the other holds 30%. Without the decomposition they will trade conclusions for an hour. With it, they discover in five minutes that the disagreement is empirical and can be resolved with two days of data.

The load-bearing idea

A prioritization score is an agenda for an argument, not a verdict that ends one. The correct response to a score is "which factor is doing the work here, and how would we find out?" — never "the model says build it."

Every framework in this family — RICE, ICE, weighted scoring, value-versus-effort — has the same shape and the same virtue: it forces the factors apart. Pick whichever your team will actually fill in honestly, and change it if people start gaming it, which they will the moment it becomes a target rather than a tool. That failure has a name, and module 7 gives it one.

Where the numbers are honest and where they're theater

The four factors have wildly different epistemic status, and treating them as equally solid is what turns a useful tool into false precision.

FactorWhere it comes fromHonest?How it goes wrong
ReachYour own analytics — how many users hit this surface per quarterMostly. Error bars maybe ±20%Counting exposed users as reached users
EffortEngineering estimateSystematically optimistic, but the bias is stable and correctableOmitting the maintenance tail entirely
ImpactA guess about behavior change, on a made-up scaleNo. This is judgment in a numeric costumeChosen to produce the desired rank
ConfidenceCredence in your own estimatesNo — and it is the factor that should be doing the most workSet to 80% for everything, which is the same as omitting it

The consequence is arithmetic: multiplying two well-measured numbers by two invented ones produces an invented number, and reporting it to two decimal places is a claim about precision your inputs cannot support. A RICE of 4.73 versus 4.61 is a tie. Treating it as a decision is not rigor; it is rigor's costume, and the costume is more dangerous than no framework at all because it is harder to argue with.

Two habits keep it honest. Report scores in bands — high, medium, low — or round hard, so nobody can mistake ordering noise for a result. And write confidence as a sentence rather than a number wherever you can: "we have eight interviews and a passed smoke test" is more usable than "80%," because the next person can evaluate the basis rather than the digit.

When it misleads

The framework's biggest distortion is structural: it systematically favors bets with legible reach. A feature affecting 30,000 users at low impact outscores one affecting 400 users at transformative impact, every time — which is how products drift toward broad shallow work and away from the intense needs of the segment that actually pays. If your top-scoring list keeps looking like polish, check whether reach is drowning impact, and consider scoring within segments rather than across them.

Cost of delay

Value scores answer "how much is this worth?" and are silent on "what does waiting cost?" Those are different questions and the second one determines sequence. Cost of delay is the value lost per unit time that a bet is not delivered, and it separates cleanly into three profiles that sequence very differently even at identical value.

Steady. The bet is worth roughly the same whenever it lands — a recurring efficiency gain, a conversion improvement in a stable funnel. Delay costs a constant rate. Most product work is here, which is why teams forget the other two exist.

Deadline cliff. Value is constant up to a date and collapses after it. Regulatory work is the pure case: a control that must be operating by the enforcement date is worth its full value on the day before and a fraction of it — plus penalties, findings, and remediation cost — on the day after. Delay costs nothing for months and then costs everything at once.

Decaying. Value falls continuously from now: a competitive response, a seasonal feature, an integration with a partner who is also talking to your competitor. Half of the value is gone by the time you get to it in Q3, and no amount of quality recovers it.

Three urgency profiles plotted as value over time: steady, deadline cliff, and decaying, showing why equal value scores sequence differentlyValue if delivered thennowQ2Q3Q4Steady — bulk taggingDeadline cliff — DORA control evidenceenforcement dateafter: value gone,findings beginDecaying — competitorintegration parityAll three could score identically on value today. Only the shapes tell you what order to build them in.
Figure 5.1 — Three urgency profiles. Steady value costs a constant rate to delay and can wait. A deadline cliff costs nothing to delay until it costs everything, so it must be sequenced backward from the date with slack. Decaying value is the one teams systematically misplay: it looks safe to defer because nothing breaks, and half of it is simply gone by Q3.
Worked — sequencing against an enforcement date

A compliance platform has two candidates. A: an audit-evidence export that eleven enterprise customers need in place before a regulatory enforcement date eight months out; RICE 6.2. B: a bulk tagging improvement used by most of the base, saving each admin about an hour a month; RICE 8.4. B outscores A by a third.

B is still the wrong thing to build first, and the reason is not that compliance is important. It is that A's value profile is a cliff and its effort estimate is 5 person-months, which means the last safe start date is roughly four months before the enforcement date — two and a half months of calendar build at the staffing available, plus six weeks of customer-side implementation, which is not on your Gantt chart and is where these projects actually die. B's value is steady: an hour a month saved in September is worth the same as an hour a month saved in June. Building A first costs you one quarter of B's steady value. Building B first risks all of A's, plus the findings.

The general rule: sequence cliffs backward from the date including downstream implementation time, then fill the remaining capacity by value density, and treat decaying items as more urgent than their scores suggest.

The roadmap is a list of nos

Every yes on a roadmap is a set of nos you did not write down. The visible roadmap has four items; the real one has those four plus the thirty you declined, and the second list is where all the information is. It tells you what the team believes, what it has ruled out and on what evidence, and whether anyone can tell you why. Keep it — dated, with reasons — as the shadow roadmap. It ends the re-litigation of settled questions and it is the single best onboarding document a new team member can read.

Two failure modes dominate the deciding conversation itself.

The HiPPO. The highest-paid person's opinion functions as a prioritization framework in most organizations, and the two obvious responses are both wrong. Silent capitulation destroys the team's ability to reason — everyone learns the factors are decorative and stops filling them in honestly. Open veto costs you the political capital you need for the next twelve decisions and usually loses anyway. The corrective is to route the demand through exactly the same structure as everything else: "Great — let's score it. What's your read on reach?" This is not a delaying tactic. Executives frequently have real information the team lacks: a deal that closes on it, a competitive move, a board commitment. Routing through the factors surfaces that information if it exists, and surfaces its absence if it does not, without anyone having to say the word "no" out loud.

Loudest voice. The same pathology at peer level: priority accrues to whoever is most persistent, most senior in tenure, or most recently in a customer meeting. The corrective is identical — the argument happens over factors, not volume — with one addition: write who claimed what, so that when reach turns out to be 6% rather than 40%, the calibration is attributable. That is not for blame. It is the only way anyone's forecasting improves, which module 8 develops into the decision journal.

Anti-pattern: prioritization by volume

Symptom: the ranked list changes after every skip-level, and nobody can reconstruct why item 3 moved above item 1; the loudest advocate's items cluster at the top; "strategic" is used as a factor. Corrective: require every reprioritization to name the factor that changed and the information that changed it. "We moved it up because reach was wrong — it's 30k users, not 3k" is a legitimate move. "We moved it up because it came up in the QBR" is a HiPPO wearing a process badge.

Scatter plot of the wine-cellar backlog on value versus effort with confidence as bubble size, showing do-now, defer, and kill regionsValue (est.)Effort (person-months) →highlowDO NOWDEFER / SPLITKILLtrustedpalates viewlabel OCRcellar insurancesommelier chatprice alertsask-a-friend flow (killed m4)trip plannerbubble = confidenceHonest axis: effort (engineering estimate, optimistic but stable).Theatre axis: value — a judgment call rendered as a coordinate. The bubble sizes are the only real content here.Read the plot to find the argument, not to find the answer.
Figure 5.2 — The wine-cellar backlog, plotted. Value against effort with confidence as bubble size. The trusted-palates view sits top-left with a large bubble because a smoke test and 22 interviews stand behind it; cellar insurance sits nearby with a tiny bubble, meaning its position is one person's opinion drawn as a coordinate. The effort axis is estimated; the value axis is judgment wearing a costume — which is why the diagram's job is to locate the argument, not to end it.

Bets, not promises: outcomes over output

A roadmap item written as "ship trusted palates v1" has a property worth noticing: it cannot be wrong. It can be late, and it can be descoped, but the day it ships it is unambiguously achieved regardless of whether anything improved. That is what makes it comfortable, and it is the same property that makes it useless as a decision record.

A bet is the alternative: an outcome, a magnitude, and a confidence, stated so it can lose. "Raise the share of new cellars reaching 10 logged bottles in 7 days from 29% to 36% by end of Q3; medium confidence — one passed smoke test, no comparable prior launch." This item can fail while shipping on time, which is precisely the information the output framing suppresses.

The shift has a consequence teams resist: it means the feature is a cost, not an achievement. You spent six weeks to chase an outcome; the six weeks are the price, the outcome is the purchase, and shipping is merely the moment you find out whether you bought anything. A team that internalizes this will kill its own launched features, which is the behavior module 8 requires.

Anti-pattern: the feature factory, at roadmap level

Symptom: every roadmap row is a noun phrase naming a thing to build; the quarterly review compares planned rows to shipped rows; no row has a number attached that could come back red. Corrective: require each row to name the metric it intends to move and the current baseline. Rows that cannot name one are either infrastructure (fine — label them as such, with the capability they unlock) or they are things nobody has thought about, which is the discovery you just avoided.

Now/next/later, and telling the truth about uncertainty

Dates on a roadmap communicate two things simultaneously — sequence and commitment — and they are almost always wrong about the second while being unnecessary for the first. A now/next/later board separates them: now is in flight and its scope is known, next is the shortlist whose evidence is gathered but whose sequence may shift, later is directional and explicitly unpromised. Confidence decays with horizon, which is honest, and the format makes that decay visible instead of hiding it behind three equally crisp Gantt bars.

Commit to a real date exactly where coordination genuinely requires one: a regulatory enforcement date, a contractual commitment, a partner launch, a conference, a dependency another team is sequencing against. Those dates are real and should be defended. Every other date is a forecast presented as a promise, and it converts the team from learners into defenders — because once the date is the commitment, the honest mid-course finding "this isn't working" costs more to say than it costs to ignore.

Side by side comparison of the same four bets rendered as a date roadmap and as a now next later board, with what each promises and what each costs when reality movesSame four bets, as datesSame four bets, as horizonspalates · Jun 14label OCR · Jul 30price alerts · Sep 12cellar insurance · Nov 1Promises: four dates, equal confidence implied.Costs when reality moves: renegotiation, or silence.NOWtrustedpalatesscope knownNEXTlabel OCRprice alertsorder may shiftLATERinsurancedirectional,unpromisedcritic-data licence migration · Mar 31 — a real, defended datePromises: sequence + decaying confidence, stated.Costs when reality moves: reorder within a horizon.Both boards carry the same plan. Only one of them can absorb the discovery that bet two is wrong.Keep dates where coordination is real — enforcement dates, contracts, partner launches, cross-team dependencies.Everywhere else, a date is a forecast wearing the clothes of a commitment.
Figure 5.3 — Dates versus horizons. The left board implies four equally firm commitments and forces renegotiation — or silence — whenever evidence changes. The right board communicates the same sequence while making confidence decay visible, and reserves a hard date for the one item where coordination genuinely demands it. The difference shows up when bet two turns out to be wrong: one board absorbs that, the other punishes it.
From your other domain

You already own the register for this. "To a reasonable degree of certainty" is not a hedge — it is a precise disclosure of confidence attached to a specific claim, and it survives cross-examination exactly because it does not overstate. Roadmap language works the same way. "We expect trusted palates in the first half of Q3; the scope is fixed and the only thing that would move it is the OCR dependency slipping" is neither a lie nor a shrug. It states the claim, the confidence, and the named condition that would change it — and it is the answer to give when an executive asks for a date on a next-horizon bet.

The structure for that answer, generalized: what is committed (with a date, if a date is real), what is conditional (with the condition named), and what would change it (a specific, observable event). Three sentences. It is honest, it is plannable, and it does not require you to know the future — only to be precise about which parts of it you do not know.

Module 06 Metrics that change decisions

Discovery gave you a bet worth making. Prioritization got it to the top of the list. Now comes the part that determines whether any of it compounds: deciding, before you build, what observation would tell you the bet was right — and what observation would tell you it was wrong.

This module is about metric design as an act of judgment rather than an act of reporting. The test throughout is a single question you can apply to any number on any dashboard: what would I do differently if this moved? Every metric that fails that test is decoration, however impressive its chart.

A metric is a decision instrument

The definition that makes everything else follow: a metric is useful exactly to the extent that some value of it would change what you do next. Apply that as a test, mechanically. Take a number on your dashboard, imagine it halving, and ask what would happen. If the answer is "someone would mention it in standup," you have decoration. If the answer is "we would stop the rollout and go look at the onboarding funnel," you have an instrument.

This reframing is more demanding than it looks, because it disqualifies a lot of numbers people are fond of. Total registered users cannot halve. Cumulative anything cannot halve. Numbers with no owner cannot trigger an action because nobody is accountable for taking one. And numbers with no threshold cannot trigger an action because there is no defined value at which anyone is supposed to do anything — which is why the threshold, not the metric, is where the decision actually lives.

The load-bearing idea

Choose metrics by the decisions they would change, not by the truths they would report. A dashboard is not a description of your product; it is a set of tripwires you have agreed in advance to act on. Anything on it that is not a tripwire is furniture.

The North Star

A North Star metric is the single number a team chooses to proxy delivered value — the thing that, if it rises honestly, means users got more of what they came for. It has three properties: it is value-linked (it cannot rise while users get less), movable in aggregate (the team's work plausibly affects it within a horizon they can observe), and it leads revenue rather than trailing it (it changes before the money does, so it can steer).

The wine-cellar team's choice: weekly active cellars with at least one update — currently 3,410. Here is what they rejected and why, because the rejections teach more than the choice.

CandidateWhy it's temptingWhy rejected
Registered users (41,000)Big, always rising, good in a deckCannot fall. Measures marketing history, not delivered value
Monthly revenueUnambiguously mattersLagging and multi-causal; a feature team cannot steer by it within a quarter
Sessions per userSounds like engagementRises when the product is confusing. Not value-linked — time spent is a cost to the user
Bottles logged (cumulative)Directly tied to the core actionCumulative, so it can only rise; a dead product still posts gains
Weekly active cellars, ≥1 updateChosen: can fall, requires a real act of value, and predicts renewal in this product's history

Note what the winning definition smuggles in: "at least one update" excludes passive opens, which matters because a collector who opens the app and closes it has received nothing. Definitions do enormous work in metric design, and most metric disputes are definition disputes wearing a disguise.

Inputs move, outputs report

Two orthogonal cuts, frequently confused. Input versus output is about controllability: an input metric is something a named team can directly move this quarter through work they can plan; an output is a result those inputs sum into. Leading metric versus lagging metric is about timing: leading signals arrive while there is still time to act, lagging ones confirm after the fact.

A metric can be any combination. Revenue is a lagging output. Weekly active cellars is a leading output — it moves before revenue and is still not something anyone can move directly. New-cellar activation rate is a leading input: a named team can change onboarding this quarter and watch it respond within weeks. Support ticket volume is a lagging input.

Teams should be accountable for inputs and evaluated on outputs. Holding a team accountable for an output it cannot move produces either learned helplessness or creative accounting, and module 7 covers the second one. Steering by leading inputs is not a preference; it is the only way to act while acting still helps.

Timeline chart showing a leading input metric declining weeks before the lagging output metric follows, with the action window shaded between themthe action window5 weeks to interveneLeading input: activation rate of new cellarsLagging output: weekly active cellarswk 3 — input turnsyou can still actwk 8 — output turnsthe quarter is already spentSame underlying decline, seen twice. A team watching only the output finds out when acting no longer helps.
Figure 6.1 — Leading versus lagging, one decline. A drop in new-cellar activation appears in week 3 and does not reach weekly active cellars until week 8. The shaded five weeks are the entire value of a leading metric: not better information, but earlier information — arriving while intervention is still possible.

The instrumentation contract

The instrumentation contract is a short document written before the build, containing five things: the events you will emit, the metric definitions computed from them, the success threshold, the read date, and the decision rule — what happens at each side of the threshold. It is signed, in the ordinary sense that people have read it and agreed, before any code exists.

Its purpose is not tidiness. It is that after launch, everyone involved will have an opinion about what success looks like, and those opinions will be shaped by the result. The contract removes the most consequential decision — what counts as working — from the period when the answer is known. This is the same mechanism as the smoke-test threshold in module 4, applied one stage later, and module 8 names it pre-registration.

Cross-reference — Guide Nº 20, The analytics stack

Guide Nº 20 covers the machinery: event schemas, identity resolution across anonymous and logged-in sessions, the warehouse, and why your client-side numbers and your server-side numbers will never agree. This course assumes it. The judgment question here is upstream of all of it — deciding what the events are for, and committing to what their values will mean — which is a decision no analytics stack can make for you.

Two paths compared: decide, instrument, ship, read as the solid contract path, versus ship, scramble, backfill as the dashed failure pathCONTRACT PATHDecidemetric + thresholdInstrumentevents + baselineShipRead on the stated dateagainst the stated barSCRAMBLE PATHShipSomeone asks"how's it doing?"Backfill eventsno baseline existsNarrate whatever existsbar set after the factContract path can honestly claim: the bet succeeded, or the bet failed.Scramble path can honestly claim: nothing. There is no pre-launch baseline and no bar that wasn't chosen after seeing the number.
Figure 6.2 — The instrumentation contract versus the scramble. The two paths ship the same feature. The difference is what each can honestly claim afterwards: the contract path can report success or failure against a bar nobody could adjust, while the scramble path has no pre-launch baseline and a threshold chosen with the result already visible — which is testimony written after the verdict.
Anti-pattern: shipping blind

Symptom: "we'll add analytics if it takes off"; no baseline captured before launch; the launch review opens with someone querying the database live. Corrective: make the contract a build blocker — the events ship with the feature or the feature does not ship — and capture the baseline for the target metric at least four weeks before launch, since a baseline measured after the change is not a baseline. The whole cost is typically half a day.

A North Star nobody can move

The opposite failure of a vanity metric is an aspirational one: a metric so lagging and so aggregate that the team responsible for it has no lever. A feature team told to move "company revenue" or "overall retention" is being handed a number they can affect only through a chain of six causes, most owned by other people, over a horizon longer than their planning cycle. The predictable results are learned helplessness (the metric is reported and ignored) or narrative (quarterly stories about how the work contributed, unfalsifiable by construction).

The corrective is not a humbler North Star. The North Star should be ambitious — that is its job. The corrective is a properly built input layer: decompose the star into three or four metrics that a named team can move this quarter through work they can plan, and hold the team to those while evaluating the star. Decomposition is where most metric programs fail, because it requires an actual causal model of the product, and writing one down means committing to beliefs that can be wrong.

Metric tree with the wine-cellar North Star decomposing into three movable input metrics, each with an owning team, and a vanity metric hung off to the side and flaggedNORTH STARWeekly active cellars with ≥1 update3,410 · leading output · nobody moves it directlyINPUT · movableNew-cellar activation(10 bottles in 7 days)29%owner: onboardingINPUT · movableBottles logged peractive user / week2.4owner: core appINPUT · movableReturn visits prompted bya trusted-palate update0 (new)owner: discovery squadHUNG OFF TO THE SIDE — VANITYTotal shares created (cumulative)cannot fall · no decision attached · no ownerEvery input has an owner, a current value, and a plausible causal path to the star.The tree is a written causal model — which means it can be wrong, which is what makes it useful.The dashed node is attached to nothing. Movement there is movement without meaning.
Figure 6.3 — The metric tree. The North Star sits at the top and nobody moves it directly; three input metrics beneath it each have a current value, an owning team, and a plausible causal path upward. "Total shares created" hangs off to the side because it is cumulative, ownerless, and attached to no decision — it will rise impressively and mean nothing, which module 8 demonstrates the hard way.

Module 07 When a metric lies

A metric does not have to be wrong to mislead you. Most of the numbers that destroy product judgment are computed correctly from clean data and are perfectly true statements about something you did not intend to measure. That is what makes them dangerous: there is no error to find, no bug to fix, and no data-quality investigation that would reveal the problem, because the problem is in the inference rather than the arithmetic.

This module is four specific ways a correct number lies — by counting something that only rises, by becoming a target, by describing a sample your process filtered, and by averaging over segments moving in opposite directions. Each has a named diagnostic and a corrective, and the second one gets a full autopsy from the reader's own domain.

Vanity metrics

A vanity metric is a number that only goes up and changes no decision. Cumulative signups, total downloads, total shares created, total documents processed since launch — every one of them is a true statement, and every one is unfalsifiable as a claim about health, because there is no value it could take that would mean something is wrong. A product losing users every week posts record cumulative totals until the day it shuts down.

The diagnostic is one question: what would we do differently if this number flattened? If nothing, it is decoration or public relations, not measurement. The reliable tell is monotonicity — anything cumulative, anything "total ever," anything that resets only upward. The second tell is the absence of a denominator: "14,900 shares created" is a vanity metric and "share of weekly actives who shared at least once, and their 4-week retention versus non-sharers" is an instrument, computed from the same events.

Two lines from the same feature: cumulative shares created climbing steadily while weekly retained sharers stays flat near zeroTotal shares created (cumulative) — 14,900Users who shared in wk 1 and again in wk 4 — 61 of 4,180wk 1wk 4wk 7This is the chart that goes in the deck.It cannot fall, so it cannot inform.Same feature. Same events. Same weeks. One number is a decision instrument; the other is a press release.Flatline test: if the gold line stopped rising tomorrow, nobody would do anything. That is the definition.
Figure 7.1 — Vanity versus decision. Both lines are computed correctly from the same event stream over the same seven weeks. The cumulative counter rises to 14,900 and can never fall; the retained-sharer line shows 61 of 4,180 exposed users still sharing in week 4. Only the second one supports a decision, and only the first one appears in the launch deck.
Anti-pattern: the celebrated counter

Symptom: a cumulative number in the all-hands deck; a Slack bot announcing milestones; language like "we've now processed over X"; no denominator anywhere on the chart. Corrective: for every cumulative counter, publish its rate and its retention pair — new per week, and the fraction of users doing it again four weeks later. Keep the counter if you like it for morale; just never let it appear in a room where a decision is being made.

Goodhart's law

Goodhart's law: when a measure becomes a target, it ceases to be a good measure. The mechanism is not cynicism and it does not require dishonest people. A metric is a proxy — a cheap observable correlated with an expensive-to-observe outcome. That correlation held under the behavior that existed when you chose the metric. The moment you attach consequences to the number, you recruit optimization pressure toward the number itself, and optimization finds the cheapest path to it. The cheapest path is almost never the outcome, because the outcome is the expensive thing you were proxying around in the first place.

Three properties predict how badly a metric will Goodhart. Proxy distance: how many steps sit between the number and the outcome. Gaming surface: how much of the number the people measured control directly, including definitions and categorizations. Consequence strength: how much rides on it — bonuses and headcount produce more pressure than a dashboard nobody reads.

From your other domain

You have watched this run in both careers. Billable hours as a proxy for value delivered to a client; time-to-close as a proxy for a matter resolved well. And in security: a patching SLA that produces exception requests rather than patches, or a phishing-click rate that falls because the simulations got easier. The GRC version is the next section, in full, because it is the cleanest case in this course of a number that stayed true while its meaning drained out of it.

The metric autopsy

A financial-services GRC program, four quarters, reconstructed from its own records.

Q1 — the metric is chosen. The program tracks findings closed per quarter across application security, third-party risk, and access reviews. Baseline: 210. It is a reasonable proxy. Closing findings genuinely was, at that point, correlated with risk going down, because the team closed things by fixing them — that was the only way anyone knew how.

Q2 — the metric becomes a target. An executive commits to the board that findings closed will reach 400 per quarter, and the number enters the leadership scorecard tied to team bonuses. Nothing about the underlying work changes. Proxy distance was already moderate; gaming surface is very large, because this team writes the findings, assigns their severities, and decides what "closed" means; consequence strength just went from a dashboard to a bonus. All three dials are now set to maximum.

Q2–Q4 — the divergence. Reported closures: 210 → 340 → 468 → 512. Every number is accurate. Three behaviors produced them, none of which anyone would describe as fraud:

Splitting. A single finding — "37 EC2 instances missing endpoint agent" — is re-recorded as 37 findings. Same work, same risk, 37 closures. This is genuinely defensible as a tracking practice, which is exactly why it is the first move.

Severity drift. Critical findings take weeks and require change windows; mediums can be closed with a compensating control and a paragraph. Over three quarters, the share of new findings rated critical falls from 18% to 6%, with no change in the underlying environment. Nobody downgraded anything dishonestly; the definitional boundary simply drifted in the direction that made the quarter work.

Close-and-reopen. Findings are closed at the quarter boundary on the strength of a remediation plan, then reopened in the following quarter when the plan does not complete. Each cycle produces a closure. One access-review finding is closed four times across the year.

The countermetrics that were not being watched. Median age of open critical findings: 34 days → 71 days. Recurrence rate within 90 days: 4% → 22%. Findings discovered by external audit rather than internal process: 11% → 29% — the sharpest signal, because it measures what the internal process is now missing. The chart that leadership saw improved by 144% over four quarters while every one of these deteriorated.

Timeline showing the findings-closed metric and actual risk posture tracking together until a target is announced, then diverging, with gaming behaviors annotated at their onsettarget announced: 400/quarter, bonus-linkedfindings closed / quarter210512actual risk posture (age, recurrence, external-found rate)correlatedwhile untargetedthe gap isthe lieQ1Q2Q3Q4splitting1 finding → 37severity driftcritical 18% → 6%close-and-reopenrecurrence 4% → 22%
Figure 7.2 — The Goodhart divergence. Findings closed and actual risk posture move together for as long as the metric is merely observed. From the quarter the target is announced and bonus-linked, they separate, and each gaming behavior appears at the point it was adopted. Every reported number is accurate throughout; what changed is that the measure stopped measuring.

The walkback. The moment the measure stopped measuring is not when someone gamed it — it is the day the target was announced with consequences attached. Everything after that was rational behavior by people responding to the incentive they were given, and treating it as an integrity problem both insults them and guarantees a repeat, because the next metric will be gamed the same way by the same rational people.

The countermetric. The fix is to pair every target with a metric that would deteriorate if the target were gamed, and to publish them together so neither can be quoted alone. Here: closures per quarter paired with median age of open criticals (defeats close-and-reopen and severity drift, since both leave old criticals sitting) and 90-day recurrence rate (defeats splitting and premature closure). Choose countermetrics by asking the uncomfortable question directly: if I had to hit this number without doing the work, how would I do it — and what would that damage?

Selection and survivorship bias

Every feedback channel you own is a filter, and the filter runs before you see anything. In-app surveys reach people currently in the app. NPS reaches people who did not churn. Interviews reach people who answered your email. Support tickets reach people who cared enough to complain rather than leave. Sales calls reach people still in your pipeline. Each channel produces true statements about the population that reached it, and each is silent about the people whose absence is the thing you most need to explain.

Selection bias is the general case: conclusions drawn from a sample your own process filtered. Survivorship bias is its sharpest form — hearing only from those who stayed. The wartime case is worth stating correctly, because it is usually told backwards: analysts examining returning bombers found damage concentrated on wings and fuselage and proposed armoring those areas. Abraham Wald's insight was that the sample was defined by having returned, so the observed damage marked the survivable hits. The armor belonged where the returning planes showed no damage — the engines — because planes hit there did not come back to be measured.

Flow showing the user population splitting into churned users invisible to all feedback channels and retained users who are the only voices heardEveryone who tried41,000CHURNED / NEVER ACTIVATED37,590not in the app · won't answerno tickets · not in the pipelineRETAINED3,410every survey, interview,ticket and NPS score"NPS is 62!"true of 8% of thepeople who tried→ no channel reaches this boxand it is 92% of the storyThe inference error: reading a statement about survivors as a statement about the product.
Figure 7.3 — Who your feedback can reach. Of 41,000 people who tried the product, every feedback channel reaches only the 3,410 who stayed. An NPS of 62 is a true statement about 8% of the population, selected for satisfaction by the very act of remaining. The box that would explain the churn is the box no instrument you own can hear from.

The correctives are cheap and almost nobody runs them: recruit from the churned list rather than the active list, sample from all exposed users rather than all responders, and — the highest-yield habit — write down what population your conclusion is actually about before you state it. "Users love it" is nearly always "the 6% of exposed users who both stayed and answered love it," and once you write it that way, most of the temptation dissolves on its own.

The segment the average hides

An average is a summary that assumes the thing it summarizes is one thing. When a population contains groups moving in opposite directions, the average reports their weighted cancellation, and a flat line is the most dangerous shape a metric can take — because it looks like stability and is frequently two stories in violent disagreement.

The wine-cellar case: four-week retention holds at 41% for two quarters. Cut by cohort tenure, it is two lines. Users with more than 50 logged bottles rose from 62% to 71%: the product got better at serving established collectors, which is real and worth knowing. Users in their first month fell from 34% to 22%: onboarding degraded badly, plausibly because the features serving the power segment added surface area a new user must now navigate. The aggregate moved 0.4 points. Both facts are large, both are actionable, and the metric that leadership watched reported neither.

The operating rule: cut every metric by the segments the decision affects before you trust it. Which segments those are is itself a judgment call, and the four that pay off most often are tenure or cohort, plan or price tier, platform, and acquisition channel. If the decision is about onboarding, tenure is not optional. If it is about pricing, tier is not optional.

Flat average retention line decomposed into a rising power-user segment and a falling new-user segment75%45%15%Average 4-week retention — 41%, flat50+ bottles logged: 62% → 71%First month: 34% → 22%Q1Q2Q3Decision supported by the average: none. Decision supported by the cut: fix onboarding this quarter.A flat line is not stability. It is frequently two loud stories cancelling each other out.
Figure 7.4 — The segment the average hides. Aggregate four-week retention moves 0.4 points across three quarters and supports no decision. Cut by tenure it is two large, opposite, actionable movements: established collectors up nine points, first-month users down twelve. The features that served the first group plausibly caused the second.
Cross-reference — Guide Nº 10, Experimentation & statistics

Subgroup analysis has a sharp edge: cutting by enough segments guarantees you will find one that looks like a result, and post-hoc subgroup findings are the most common way a null result gets converted into a win. Guide Nº 10 covers the machinery — multiple comparisons, pre-registered segments, and why a subgroup found after the fact is a hypothesis rather than a finding. The rule that keeps you honest here: name the segments you will cut by in the instrumentation contract, before the data exists.

Module 08 Closing the loop

Everything so far has been preparation for one moment: the day the data arrives and tells you something you did not want to hear. Every technique in this course — the pre-committed smoke-test threshold, the instrumentation contract, the falsifiable hypothesis — exists to make that moment survivable, because a team that cannot take a no has been doing all of this for decoration.

This module closes the loop three times over. It runs the wine-cellar bet to its honest conclusion, which kills a feature the team liked. It hands the surviving judgment to the build in a form that does not evaporate. And it deals with the part that determines whether any of this compounds: reviewing your own decisions in a way that improves them, which is harder than it sounds and rarer than it should be.

The experiment is the honest test of the bet

A launch review can do exactly one of two things, and which one is fixed before the review begins. If the success criteria were written down before the data existed, the review evaluates a bet. If they were not, the review narrates a result — and everyone in the room, acting in good faith, will construct a threshold that the observed number happens to clear.

Pre-registration is the practice that separates them: the metric, the threshold, the read date, and the decision rule committed before launch, plus an explicit list of moves that are out of bounds afterward. That list matters as much as the threshold, because the pressure at read time never arrives as "let's change the bar." It arrives as three reasonable-sounding proposals: extend the window because the trend looks promising, switch to a metric that did move, or find the segment where it worked.

Cross-reference — Guide Nº 10, Experimentation & statistics

Guide Nº 10 owns the machinery: randomization and assignment, power calculation, why peeking at a running test inflates false positives, sequential testing, and how to read a confidence interval that straddles zero. This course assumes all of it and adds only the judgment layer — deciding what the experiment is for, committing to what its result will mean, and having the discipline to honor that commitment when the number arrives. The statistics cannot save a test whose success criterion was chosen after the read.

Anti-pattern: the rubber-stamp launch

Symptom: the GA announcement is scheduled before the read date; the experiment is described as "validating the launch"; the rollback plan does not exist; nobody can say what result would stop it. Corrective: the read date precedes any announcement date on the calendar, the rollback path is built and tested before rollout, and the person who would have to execute the rollback is in the room when the criteria are written. An experiment that cannot say no is a ceremony with a p-value.

The twist: shares up, North Star flat

The wine-cellar team built the trusted-palates view. It shipped on time, at high quality, and the team liked it — the passive feed of what two to four trusted collectors had recently logged was, by any craft standard, the best thing they had made that year. They also shipped a lightweight share action alongside it, because it was two days of work and the feed made it natural.

Six weeks after full rollout, on the read date written into the contract in May:

MetricBaselineReadContract barVerdict
Total shares created014,900none — not in the contractnot a criterion
Weekly active cellars, ≥1 update (North Star)3,4103,452 (+1.2%)+6% (3,615)fail
New-cellar activation (input)29%29.4%flat
Bottles logged per active/week (input)2.42.4flat
Return visits from a palate update (input)0310/wkreal but small
Users who shared in wk 1 and again in wk 461 of 4,1801.5%

The +1.2% sits inside the noise band the contract specified. The bar was +6%, chosen in May against two prior launches that moved 5% and 9%. This is a fail, and it is not a close one dressed up as ambiguity — it is a fail with a large, cheerful, entirely genuine counter next to it reading 14,900.

What was said in the room, and what it was

"Shares are up 340% month over month." — True. Not a criterion, not in the contract, and cumulative. This is the vanity metric from Figure 6.3, doing exactly what it was flagged in May to do.

"Give it another six weeks — the trend is still climbing." — The out-of-bounds move named in the contract. The trend that is climbing is the counter, not the North Star.

"Sharers retain better than non-sharers, so it is working." — True and worthless: users who share are users who were already engaged. The comparison is selection bias with a chart, and the pre-registered comparison was against the baseline population, not a self-selected subgroup.

"Power users love it." — Also true. The segment cut was not pre-registered, which makes it a hypothesis for the next bet, not a finding for this one.

The decision, executed as written. +1.2% is below the +2% floor, so the contract's bottom branch applied: the feature came off the primary surfaces. The team wrote it up in the shadow roadmap with the numbers and the date. Six weeks of build, killed by its own authors, against a bar they set themselves in May.

The salvage, which is real and is not a rescue. One input metric moved: 310 return visits per week attributable to a palate update. That is small against a 3,410 base and it is not nothing — it says the notification, not the feed, was the part that did work. The next bet, entering the funnel at opinion stage with no validation yet, is a drinking-window notification that names a specific trusted collector who logged the same bottle. It is a different bet with its own contract, and calling it a continuation of this one would be exactly the hindsight rewriting the next section is about.

Two lines over six weeks: shares created climbing steeply while weekly active cellars stays flat below the pre-registered threshold, with the kill call marked at the read datepre-registered bar: +6% → 3,615 weekly active cellarsshares created (cumulative) → 14,900weekly active cellars: 3,410 → 3,452 (+1.2%)read datefixed in May,before any dataCall: fail. Feature removed from primary surfaces. Six weeks of build, killed by its authors.wk 1wk 6The gold line is real, accurate, and entirely beside the point. It was flagged as vanity in the contract five months earlier.
Figure 8.1 — The twist. Both lines are true. The cumulative share counter climbs to 14,900 while weekly active cellars moves 1.2% against a bar of 6% set five months earlier, and the vertical line marks a read date fixed before any data existed. The feature was well built, well liked, and killed — which is what a pre-registered criterion is for.

From decided what to executable spec

Judgment evaporates at handoff unless something carries it. The common failure is a spec that describes the artifact perfectly — screens, states, edge cases, acceptance criteria — and says nothing about why it exists or what would make it wrong. That spec produces a correctly built thing that nobody can evaluate, and it strands the builders: an engineer who knows the bet can protect it during the hundred small decisions where the bet actually lives, and an engineer who knows only the screens cannot.

An executable spec should inherit four things from everything upstream of it. The job (context, motivation, outcome, and the workaround it must beat) — this is what lets a builder resolve an ambiguity without a meeting. The hypothesis, with its magnitude, so the scope conversation has a reference point. The metrics and events from the instrumentation contract, specified as build requirements rather than a follow-up ticket. The kill criteria and read date, so that everyone building it knows from day one that it can be removed, and by what rule.

Cross-reference — Guide Nº 28, Specs as source

Guide Nº 28 covers the form: how to write a specification precise enough that a capable model builds from it correctly, what belongs in the spec versus the code, and how the spec stays authoritative as the implementation drifts. This course supplies its first four sections — the job, the hypothesis, the metrics, and the kill criteria. That guide's argument and this one's meet exactly here: when building is cheap, the spec is where the leverage lives, and the judgment in this course is what keeps the spec pointed at something worth building.

Closed loop of seven stages — discover, decide, spec, build, instrument, experiment, learn — returning to discover, with Guide 28 owning the spec stage and Guide 10 owning the experiment stageThe discovery-to-outcome loopDISCOVERjobs, workarounds,cheap discriminating testsDECIDEprioritize; write itas a bet, not a promiseSPEC · Guide Nº 28job · hypothesis ·metrics · kill criteriaBUILDthe tractable halfINSTRUMENTevents, baseline, thresholdcontract signed before buildEXPERIMENT · Guide Nº 10the honest test ofa bet allowed to loseLEARNpost-mortem againstthe decision journalOne loop, not two disciplinesJudgment decides what enters the loop.The spec carries it into the build — Nº 28.The experiment decides if it stays — Nº 10.A loop that never returns to discover is a pipeline, and a pipeline cannot learn anything.
Figure 8.2 — The discovery-to-outcome loop. Discovery, decision, spec, build, instrumentation, experiment, and learning are one continuous process rather than seven phases with handoffs between them. Two other guides own segments of it — Nº 28 the spec that carries the decision into the build, Nº 10 the experiment that tests it honestly — and this course owns the arc from learning back around to discovery, which is the only edge that makes the rest of it compound. Note that instrumentation sits after build in sequence and before it in time: the contract is written at spec stage and merely lands here.

The last item is the one that gets cut, and cutting it is what makes a kill impossible later. A team that learns on the read date that the feature might be removed will fight it. A team that knew in week one, and helped write the criterion, will run the removal themselves.

The honest post-mortem

Memory is reconstructive, and it reconstructs toward coherence. Six weeks after a result, everyone involved sincerely remembers having had reservations, and the version of the bet they remember making is subtly better calibrated than the one they made. This is not dishonesty; it is how memory works, and it makes unaided retrospection nearly worthless for improving judgment.

The instrument is the decision journal: a short written entry at decision time recording the hypothesis, the evidence and its gaps, the predicted outcome with a confidence number, the success threshold, the kill criteria, the read date, and the alternatives declined. It takes fifteen minutes and it is the only admissible record when the post-mortem convenes, because it was written by someone who did not know the answer.

Run the review against that document and nothing else. The two questions that matter: was the process sound given what we knew then? and what would we have needed to know to decide differently, and could we have bought it cheaply? Note that neither question is "did it work."

From your other domain — the reflex to suspend

Litigation trains a specific instinct: when the record is challenged, you defend it. You marshal the strongest available reading of what was decided and why, and you do not concede. That instinct is correct in an adversarial proceeding and catastrophic in a post-mortem, because the post-mortem is not adversarial and the only thing you can win by defending the record is a worse next decision. The transferable skill is different and just as valuable: you already know how to build a contemporaneous record and how much weight it carries against later recollection. Keep the record-keeping; suspend the advocacy.

Anti-pattern: hindsight rewriting

Symptom: "we always knew it was really about recommendations"; the retro's account of the original bet is more sophisticated than any document from the time; nobody can produce the artifact the claim is based on. Corrective: open every post-mortem by reading the decision journal entry aloud, verbatim, before anyone speaks. It takes ninety seconds and it ends the genre.

Judgment as a muscle

Taste is not a gift; it is compressed feedback from honestly closed loops. Someone with twenty years of experience and no closed loops has one year of experience twenty times, because nothing ever came back and told them they were wrong in a form they could not reinterpret. Calibration improves under exactly one condition: predictions written down in advance, with confidence attached, and scored later against what happened.

That scoring requires one more separation, and it is the one people find hardest. Resulting is judging a decision by its outcome rather than by the process and information available at the time. Decisions and outcomes are two variables, and all four combinations occur. A well-reasoned bet with good evidence can fail because the world moved. A guess with no evidence can win because it was lucky. If you evaluate only outcomes, you will learn to imitate lucky guesses, which is worse than learning nothing.

Quadrant of decision quality against outcome, with resulting marked in the bad-decision good-outcome cell and learning located in process reviewGoodoutcomeBadoutcomeBad decision (thin evidence, no bar)Good decision (evidence, pre-set bar)RESULTING LIVES HERELucky. Gets promoted,retold as vindication,and copied by everyone.EarnedRepeat the process,not just the feature.DeservedThe only cell thatteaches without effort.Unlucky — protect thisSound process, world moved.Punish it and nobodywrites a real bar again.Decision quality × outcome
Figure 8.3 — Decision quality versus outcome. Only the diagonal is intuitive. The top-left cell is where resulting does its damage: a thin bet that happened to win gets retold as vindicated process and copied. The bottom-right cell is the one an organization must protect — a sound process that lost — because punishing it teaches everyone to stop writing thresholds they might miss.

The field checklist. Ten anti-patterns, each with a symptom you can observe and a corrective you can run. This is the course, compressed.

Anti-patternSymptom in the wildCorrective
Solution loveThe feature is described in detail; the user's situation in generalitiesWrite the job statement first; assign someone to name the cheapest kill evidence
Feature factoryThe quarterly review is a list of launches with no number attachedEvery roadmap row names a metric and a baseline, or is labeled infrastructure
Roadmap as date promisesFour equally crisp dates, none with an external party planning against themNow/next/later; keep only dates with real coordination cost and show the backward math
Discovery theaterInterview guide written after the roadmap; "validation" as the goalKill criterion circulated before session one; recruit lapsed users
Shipping blind"We'll add analytics if it takes off"; no pre-launch baselineInstrumentation contract as a build blocker; baseline captured four weeks early
Vanity celebrationA cumulative counter in the all-hands deck, no denominatorPublish rate and retention pair beside every counter; bar counters from decision rooms
Immovable North StarA feature team accountable for company revenueBuild the input layer; hold teams to inputs, evaluate on the star
HiPPO / loudest voiceThe ranked list changes after every skip-level and nobody can reconstruct whyRoute every demand through the same factors; require the changed factor to be named
The backlog that only growsTwo-year-old items; grooming adds more than it removesStanding kill review; dated reasons in a shadow roadmap
Rubber-stamp launchGA announcement scheduled before the read dateRead date precedes announcement; rollback built and tested; criteria written with the person who would execute it

One habit carries more of this than any other, and it is the cheapest: before every meaningful bet, write down what you predict, how confident you are, and what would change your mind. Fifteen minutes. Score them quarterly against what happened. That is the entire mechanism by which product judgment stops being a personality trait and starts being a skill — and it is the one thing in this course that nobody can do for you.

Concept index

Product judgment
The skill of deciding what deserves to exist, distinct from the skill of building it well.
Feature factory
A team measured on output shipped rather than outcomes changed, which optimizes exactly what it measures.
Output
The thing shipped — a cost incurred, not a goal achieved.
Outcome
The change in user or business behavior a shipped thing was supposed to cause.
Uncertainty reduction
The single job of discovery, prioritization, and metrics: knowing more, sooner, cheaper, about whether a bet is right.
Solution-as-hypothesis
Treating any proposed feature as a falsifiable claim about who will change what behavior.
Request laddering
Interrogating a feature request upward to its job and downward to alternative solutions.
Falsifiable hypothesis
A claim specific enough that evidence could prove it wrong.
Solution love
Attachment to a particular implementation that makes disconfirming evidence feel like an attack.
Job to be done
The progress a user is trying to make in a context — what they hire a product to do.
Leading question
An interview question that contains its preferred answer and therefore cannot disconfirm it.
Say-do gap
The systematic divergence between stated intent and revealed behavior.
Discovery theater
Research performed to confirm a decision already made.
Discriminating test
A test whose plausible outcomes point to different decisions; a test that can only confirm is not a test.
Cost-of-learning curve
The steeply rising cost of changing or killing an idea from discovery through launch.
Prototype
A low-cost fake of a product used to buy evidence about a named uncertainty.
Concierge test
Delivering the service manually to test demand before building the automation.
Wizard-of-Oz test
A real-seeming interface backed by humans, testing the experience before the machinery.
Fake door
A visible entry point to an unbuilt feature, measuring genuine demand at near-zero cost.
Smoke test
Any cheap pre-build test whose result is allowed to kill the idea.
Opportunity assessment
The structured case for whether a problem is worth pursuing at all, made before solutioning.
RICE
Reach × impact × confidence ÷ effort — a structure for the prioritization argument, not a substitute for it.
False precision
Decimal places on a judgment call — numeric costume worn by an estimate.
Cost of delay
What waiting costs per unit time — the urgency dimension value scores omit.
HiPPO
The highest-paid person's opinion, functioning as a prioritization framework.
Now/next/later
A horizon-based roadmap format that communicates sequence and confidence without fabricating dates.
Bet
A roadmap item stated as an outcome with a confidence level, priced so that it can lose.
Shadow roadmap
The list of things you declined — the roadmap's real content, rarely written down.
North Star metric
The single metric chosen to proxy delivered value, which the input metrics decompose.
Input metric
A metric a team can directly move, feeding a North Star it cannot.
Leading metric
A signal that arrives while there is still time to act on it.
Lagging metric
A signal that confirms after the fact what the leading signals foretold.
Instrumentation contract
The pre-ship commitment to what will be measured and what result means success.
Vanity metric
A number that only goes up and changes no decision.
Goodhart's law
When a measure becomes a target, it ceases to be a good measure.
Countermetric
A paired metric watching the outcome a target metric can be gamed away from.
Selection bias
Conclusions drawn from a sample your own process filtered.
Survivorship bias
Selection bias's sharpest case: hearing only from those who stayed.
Hidden segment
The diverging subgroup a flat average conceals.
Pre-registration
Committing to success criteria before seeing the data, so the read stays honest.
Decision journal
The written record of a bet at decision time — the only admissible evidence against hindsight.
Resulting
Judging a decision by its outcome instead of the process and information available at decision time.
Executable spec
The artifact that carries the decided what — job, hypothesis, metrics, kill criteria — into the build.

This is the complete text of the course. With JavaScript enabled, this same page runs the interactive edition — a self-diagnostic that reorders the syllabus around your gaps, knowledge checks, applied worksheets with model answers, and a spaced-repetition review queue — with progress saved locally in your browser.