Skip to content

Assumption Surfacing

Naming what we believe but haven't witnessed. Three states — witnessed, inferred, not witnessed. Each cycle moves assumptions from one state to another. The cycle that doesn't surface assumptions runs blind into the gaps it doesn't yet know it has.

Owners: PO Phase it lives in: Before We Build → After We Build The corpus principle this enacts: Witnessed, not described.

Where it lives in the chain

The three states

StateMeaningCarries which risk
WitnessedWe've sat next to the person doing this.Lowest — but witnessing once is not forever. Re-witness if the context changes.
InferredWe're reasoning from related observation, or industry knowledge, or what the brief from a similar moment told us.Medium — explicitly named so we know what we're carrying.
Not witnessedWe believe this is true. We have not seen it.Highest — most production surprises live here.

How to do this

The Initiative Brief and Feature Brief both carry a "What we have NOT yet witnessed" section:

text
Not witnessed:
- The teacher mid-session, switching languages.
- Graders who have less than 1 year experience.
- Sessions on tablets.

The cycle's discovery either witnesses some of these, or the team ships knowing these gaps exist — and the chain-aware label observation-mismatch is on the watchlist for the signal reading.

After the signal reading, the model update closes addressed items and adds new ones:

text
Before: "We have not observed someone with no Hebrew reading ability."
After:  "Closed — May 2026. New: user switching languages mid-session, seen in usage data."

What good practice looks like

A team that surfaces assumptions catches observation-mismatch before shipping"We assumed graders work in linear sequence; we haven't watched that; let's witness before we design." One session of witnessing might change the entire flow design. That's discovery doing its job.

A team that doesn't surface assumptions ships features confidently, then learns from production what the brief should have anticipated. The cost is the wallet bug pattern: one line of code, six weeks of trust to rebuild.

200apps · How We Work · NWIRE