Discovery process

How I turn a stakeholder request into a problem worth solving.

A stakeholder rarely hands you a problem. They hand you a feature, a screen, or a competitor to copy. This is the process I run to walk that back to the job the person is trying to do, explore the space honestly, then converge on a plan a team can build without guessing.

Discover Define Develop Deliver Problem Solution
Diverge: explore wide Converge: narrow with intent
01 · Find the real job

Finding the job underneath the requested feature

When a team asks for a feature, the feature is the visible tip of something they've already decided. Underneath sits a job the customer is trying to get done, and the feature is one guess at how to help. Build the guess without testing the job and you can ship something that works exactly as specified and still misses. So the first move is to separate the ask from the outcome. What is the person hiring this product to do, and what would count as progress for them? Jobs to be Done is the lens. People don't want a quarter inch drill, they want a quarter inch hole. Sometimes they want a picture on the wall, and the hole is itself a guess.

02 · The switch interview

The switch interview, and the timeline it reconstructs

The richest discovery input isn't what people say they want. It's the story of the last time they switched to something new. A switch interview reconstructs that timeline: the first thought that something had to change, the trigger that made it urgent, the alternatives they weighed, and the moment they committed. I'm listening for the forces that pushed them off the old way and pulled them toward the new one, and just as carefully for the anxieties and habits that nearly kept them put. Opinions about features are cheap. A real timeline of a real switch is where the job reveals itself.

  • First thought. When did the old way first feel inadequate? Often weeks before any action.
  • Trigger. What event turned a vague dissatisfaction into an active search?
  • Consideration. What did they compare, and what almost stopped them?
  • Commit. What finally tipped them, and what did progress feel like once they had it?
03 · Forces of progress

The four forces that decide whether someone switches

Every switch is a tug of war. Two forces drive progress: the push of the current situation and the pull of the new approach. Two resist it: the anxiety of the unknown and the habit of the present. A product wins not only by increasing the pull, which is where teams instinctively spend, but by reducing the anxiety and loosening the habit, which is where the quiet wins live. Mapping the four forces tells me where the real design work is.

Push of the situation
drives progress

What about today is bad enough to make a person look for something else.

Pull of the new way
drives progress

The promise of the new approach, the thing that makes it worth the effort.

Anxiety of the new
resists progress

Fear of the unknown, of looking foolish, of the switch not being worth it.

Habit of the present
resists progress

The comfort and sunk cost of the way things already work.

04 · The Double Diamond

The Double Diamond, and when to open up or close down

JTBD tells me what to look for. The Double Diamond tells me when to open up and when to close down. The hard part isn't diverging or converging on their own. It's resisting the urge to collapse to a solution before the problem is understood. The first diamond is about the problem: explore it widely in Discover, then sharpen it to one statement in Define. The second is about the solution: generate options widely in Develop, then commit and ship in Deliver. Each phase has an output, and I don't leave a phase without it.

Diverge
Discover

Deep user discovery and market research. Switch interviews, competitive audits, the landscape of the job. No solutioning yet.

Output: a research synthesis and a map of the job
Converge
Define

Distill the mess into one sharp problem statement. This is the waist of the first diamond, and the highest-leverage moment in the whole process.

Output: a single problem statement and a hypothesis
Diverge
Develop

Generate solution options without marrying the first one. Sketch, prototype, and test against the problem statement, not against taste.

Output: tested concepts with evidence
Converge
Deliver

Commit to one direction and make it real and shippable. Detail, build, and hand off with the measures already agreed.

Output: a buildable, scoped, measurable plan
05 · Define the problem

Writing the problem statement the rest of the work answers to

The waist of the first diamond is where most projects are quietly won or lost. A problem statement that's too broad lets scope creep in unchallenged. One that's too narrow bakes in a solution before it was earned. I write it as one sentence naming who has the problem, the job they're trying to do, and the gap between where they are and the progress they want. Once it exists, every later decision is measured against it. A feature that doesn't move the problem statement is a feature I can cut without guilt.

06 · The scope document

What goes into the scope document

Discovery is worthless if it stays in my head. The scope document is where the converging lands. It states the problem, the bet, and how we'll know it worked, in language the whole team has agreed to. It doesn't lock people into a final plan, but it makes any change visible, because a change to the document means a conversation, not a surprise. These are the rows I won't ship without.

Customer problem
The job the person is trying to do and the gap they hit. If this isn't clear, the project isn't ready. It needs more discovery.
Business problem
Why the business is asking now, ideally tied to the customer problem. Naming it honestly prevents a solution that serves only one side.
Hypothesis
A testable bet: we believe this change will produce this outcome because of what discovery showed. It can be proven wrong.
Success measures
How we'll know it worked, qualitative and quantitative. Quant measures need engineering and product to commit to instrumentation early, so I raise them now, not at launch.
Out of scope
What we're deliberately not doing this time. The most protective row on the page, and the one teams most often skip.

A note on unshipped work: if a project hasn't launched, success is a measurement plan, not a results table. I state how the bet would be evaluated rather than inventing numbers it hasn't earned.

07 · Prioritize and cut

Ranking requirements and drawing the cut line

A requirement set is only useful once it's ordered. I stack rank features against the problem statement and group them by priority, so the team builds in the sequence that proves or disproves the bet fastest. The point isn't the list. It's the line drawn through it: what makes the first release and what waits. Holding that line is the facilitation work, managing the tension as scope wants to expand and the calendar wants it to narrow.

P0
Must exist for the bet to be testable. Cut anything here and the release cannot answer the hypothesis.
P1
Strengthens the release but the bet survives without it. First to move if the calendar tightens.
Later
Real, but not now. Parked explicitly in the out of scope row so it is a decision, not an omission.
08 · How I use it

How this process shows up in the work on this site

This is the spine behind the case studies on this site, not a theory I admire from a distance. KeySign is the clearest example: the request was a real estate app, and the job underneath it turned out to be the twenty minutes after a buyer says yes at the curb. Naming that narrowed everything. Offline first stopped being a feature request and became the bet, because a driveway is where the signal dies. The process is what lets me show the thinking, not only the outcome. Widen with intent, converge with discipline, and write the scope down before anyone builds.

A solution handed to you is a hypothesis in disguise. The work is to find the job underneath it, explore the space without flinching, then narrow to a problem and a bet a team can build against. Process is what makes that repeatable.

Explore more playbooks

The AI Operating System holds the line on correctness once a model is in the loop, the Figma Operating System keeps the file legible as a team grows into it, and the Interface Content System settles what the screen actually says.

AI Operating System cover
AI Operating System, holding the line on correct
AI does not fail loudly. It drifts quietly toward what looks finished, reading with confidence and landing subtly wrong. This is the method that keeps a person holding the intent fixed: state the target up front, encode the system so drift is detectable rather than a matter of taste, and let nothing ship without a final call.
Figma Operating System cover
Figma Operating System, the system under the agent
The standard I run Figma on now that the blank canvas is gone and there is an agent in the file. Naming, status glyphs, tokens, versioning and handoff stay yours, because a well named system is the difference between output that looks like your product and output that looks like a template.
Interface Content System cover
Interface Content System, the words on the screen
Seven rules for interface copy, covering perspective, plain language, error states and accessibility. Each one shown as a weaker version beside a stronger one, so the difference is visible rather than described.