Skip to main content

Week 3: A Model Is a Claim, Not a Map

How to build a working model of a system's intended behaviour when there is no one left to explain it, and why structural reading has to do the work documentation used to.

8 March 2027

Weeks 1 and 2 both worked on systems small enough that reading the whole thing was a reasonable first move. That stops being true this week. fulfil spans several modules, nobody currently at Northfield Mercantile built it, and its README is stale enough to be actively misleading in places rather than merely incomplete. Documentation, from here on, is not a reliable evidence source by default — it has to earn trust the same way any other claim does.

What structural reading actually means

Structural reading is reconstructing what a system is for from how it is organised, without being told. Three sources carry most of the weight:

None of these is documentation in the traditional sense. All three are evidence, in the same sense last week’s disconfirming test was evidence — they support or contradict a specific claim about what the system does, and they can be wrong or misleading in ways worth naming explicitly.

A model is a claim, not a map

The output of structural reading is a short written model: what the system is supposed to do, stage by stage, plus an explicit list of what you haven’t verified yet.

Supported by control flow:
Intake validates an order, then hands it to pricing before inventory
allocation runs.

Unverified:
Whether every successfully priced order is guaranteed to reach inventory
allocation, or whether some path skips it.

That second line is doing real work. A model that only states what’s known and omits what isn’t looks more finished than it is — and an unstated assumption in a structural model is exactly as dangerous as an unstated assumption in an observation.

Why this depends on Weeks 1 and 2

A structural model is itself a hypothesis about the system’s design, and Week 2 already established what a hypothesis needs: something that would count against it. “Intake always hands off to pricing” is falsifiable — find one order that skipped pricing and it’s wrong. “Intake probably does some validation” is not; there’s no result that would disconfirm it. Week 1’s habit matters just as directly: every claim in the model has to trace back to something you actually read in the code or observed in its behaviour, not to what would be convenient for the model to say.

Once you have a model with its gaps marked, the fault search stops being “try opening files until something looks wrong” and becomes “which of my unverified claims, if false, would explain what’s observed?” That question has a small number of candidate answers instead of an unbounded one — which is the entire value of doing the modelling step at all.

What carries into next week

The model you build this week is not a one-off artefact. Week 4’s instrumentation is placed at points this model justifies, not at every plausible location — a structural model is what turns “log everything and hope” into a targeted question about the system.

Teaching team