Six questions, and what a good answer sounds like
A list of questions is easy to produce and easy to ignore, because a question with no stated acceptance criterion is answered by whoever is most confident in the room. So each of the six below is written with the answer that would move you attached to it, which does two things: it makes a vague answer visibly vague, and it commits you in advance rather than after you have heard how the proposal is going.
★ What you walk out with tonight. Six questions you can ask in a real meeting, each traced to the session that produced it and each paired with the answer that would change your position. A measured example of the one question that is a number, so you can say why it matters rather than asserting that it does. A clear picture of who makes the decision and who carries it, drawn rather than complained about. And the one line that fits on a card, which is where the whole thing lands.
LiveWhy an unanswered question is an answer4 min▶
Four of the six have a property worth noticing: a vague answer and a bad answer look the same from outside, and both mean the same thing in practice. If nobody can say what stays off the permanent record, the boundary has not been drawn. If nobody can name a reorg depth, the lag was chosen by default. If nobody can name the party who benefits from the metric, nobody has looked.
That makes these questions cheap to ask and hard to deflect, which is the point. You are not asking anybody to predict the future or defend a technology choice. You are asking whether a specific decision has been made yet, and the absence of an answer is itself the finding.
Larkfield's proposal was approved with five of these six unanswered, and none of the five was hidden. Nobody asked, because the meeting was about whether the product idea was good and these read like implementation detail. Four of the five became work for the data team within a year, and the fifth is still waiting.
Self-studyThe words that keep coming back4 min▶
- The boundary. What goes on the permanent record and what deliberately stays off it. Session 4, and the first question.
- Counterparty. Any party that has to accept the record as authoritative. Session 5, and the second question.
- Unit of identity. What one row of your reporting counts. Addresses, entities or people, and they are three different numbers. Session 2.
- Error direction. Which way a method is wrong. One-sided error gives a bound, two-sided error gives a number you must trust.
- Reorg depth. How far back the recent history can be replaced. The number the fifth question is about, and the one nobody writes down.
- Finality lag. How long you wait before loading. A defence that works only if it is at least as deep as the reorg.
- Retraction. Removing already loaded rows when their source is replaced. A separate defence with a separate cost, and the two are easily confused.
- Paying metric. Any published number that causes money or resource to move. Session 3, and the sixth question.
Six questions, each with the answer that moves you
17 min liveThese are in the order you would actually ask them, which is not the order the sessions came in. The first two decide whether there is a project at all. The next three decide what it costs to run. The last one decides whether the number at the end of it will mean anything.
LiveThe first two decide whether there is a project4 min▶
Question one is the boundary from session 4, and the reason it goes first is that it is the only decision in the whole arrangement that is genuinely reversible before the build and genuinely irreversible afterwards. Everything else on this list can be improved later at some cost. What went on the permanent record cannot.
Question two is the two-question test from session 5 compressed into one, and it is the one people resent most, because it asks about relationships in a meeting that was supposed to be about technology. Ask it anyway, and ask it in the form that does the work: not "do you trust each other" but "who would keep the record if we did not do it this way, and would everyone accept them". A name that everyone accepts means the machinery is buying tolerance of a distrust that is not present, and session 5 was clear about what that costs.
If the first two come back well, the project may be worth doing. If either comes back vague, nothing further on the list matters yet, because you are scoping something that has not been decided.
LiveThe next three decide what it costs to run4 min▶
Questions three, four and five are the standing operational load, and they are the three that land on a data team specifically. Three is session 2: what your reporting counts and which way it is wrong. The acceptance criterion is the shape of the answer rather than its accuracy, because a ceiling with a stated method survives being repeated by somebody who was not in the room, and a point estimate with a caveat does not.
Four is session 4, and it is the question that produces the most informative silence on the list. You are not asking for a policy. You are asking somebody to narrate an incident: a record is wrong, what happens next, who does what, and who ends up reading the wrong value anyway. Anyone who has drawn the boundary can do this in twenty seconds.
Five is the one with a number, which is why it gets part 2 rather than a sentence. The honest version of this question is not "have you thought about reorgs", which everybody answers yes to. It is "what depth are you designing for and where did the number come from", and then a lag at least that deep, with retraction discussed separately.
Self-studyQuestion six, and why it is last rather than first4 min▶
Session 3's finding is arguably the most severe on the list, so putting it sixth looks like an ordering mistake. It is deliberate. The first five are about whether the thing can be built and what it will cost to operate. The sixth is about whether the output will mean anything, and that question only becomes answerable once you know what is being published to whom.
There is a second reason. The first five can be answered by the people proposing the project. The sixth usually cannot, because the party who benefits from the metric is often somewhere else in the organisation, or outside it entirely, and asking the question in the design meeting is how you find out that nobody owns the answer. That discovery is worth more than the answer would have been.
The failure mode to watch for is a confident "nobody benefits, it is just a reporting metric". Session 3 measured what that reasoning costs: the conditions for manufactured identity are permanently present, the cost of one more of them is one more row, and the resulting rows do not trip anything. A metric that nobody is paid to move is a claim about the incentive landscape, and it needs the same evidence as any other claim.
Question five, measured rather than asserted
12 min liveFive of the six questions are answered in words. This one is answered with an integer, and a plausible integer can be wrong in a way that is invisible from inside the pipeline. The practitioner bench runs a warehouse loader against a source whose recent history gets replaced, and the result is worth having in your head before you ask anybody the question.
...
LiveTwo defences, and why they must be kept apart4 min▶
Waiting and retracting are different mechanisms with different costs, and the box above puts them on separate controls for a reason. Waiting keeps rows out of the report until they are settled, so it costs freshness and it costs nothing else. Retracting lets rows in and removes them afterwards, so it costs nothing in freshness and it means your published figures move after publication.
They are easy to blur together because both end up with a clean warehouse, and blurring them produces a specific error: a shallow lag that appears to solve a deep reorg because the retraction was quietly doing the work. An earlier version of this bench made exactly that mistake and made a one block lag look like a fix for a three block reorg. The practitioner track spends a whole session on how that was caught.
The practical form of the question is therefore two questions in a trenchcoat, and you should separate them when you ask. What depth are we waiting for, and do we retract as well. A project that answers only the second has chosen to publish figures that move. A project that answers only the first has chosen staleness. Both are legitimate and neither is the default anybody meant to choose.
LiveWhere the cost lands, drawn rather than complained about4 min▶
Five sessions have produced a consistent pattern that is worth stating plainly at the end rather than implying throughout. The decision to build on this is made once, quickly, by people who are evaluating a product idea. The consequences are continuous, and they arrive at a different desk.
That is not an accusation of bad faith, and treating it as one gets you nowhere. It is a structural feature of how the costs are shaped: the boundary decision looks like an implementation detail in the room where it is made, and looks like the whole job eighteen months later. The read path, the bound that has to be re-explained every quarter, the loader lag, the metric that no amount of engineering will fix.
The remedy is not louder objection. It is the six questions, asked before the decision rather than after, by the people who will be carrying it. That is the entire argument for spending forty five minutes on a list of questions.
Run the six on something real, out loud
13 min hands onNo code. Six steps on a proposal that exists in your organisation, said in the room. The aim is to leave with one proposal scored against all six and one question you know you cannot currently answer.
Say the six from memory
Boundary, counterparties, unit of identity, what happens when a record is wrong, reorg depth, who is paid. Most people lose the fifth, which is the one with a measurable wrong answer.
Pick a real proposal and run one and two
Is there a written boundary, and can anybody name a keeper the others would accept. Answer both out loud before going further. If either is vague, stop and say what that means rather than continuing politely.
Narrate a wrong record
Someone describes the sequence: the wrong record, the annotation, the read path rule, the reader who misses it. Time it. Anyone who can do it in twenty seconds has drawn the boundary; anyone who cannot has not.
Set the lag to 1 and look at it
In the live box, leave retraction off and set the lag to 1. Read the wrong row count and the share. Say why that setting is worse than no precaution at all, in terms of what somebody would believe about it.
Separate the two defences out loud
Turn retraction on at lag 0, then off at lag 3. Both give you a clean warehouse and they cost different things. Say which cost your organisation would rather pay, and why, in one sentence each.
Name the question you cannot answer
One of the six will have no answer available in the room. Write it down with the name of the person who could answer it. That name, and that question, is the actual output of tonight.
The habit to keep. Ask the six before the decision, not after, and ask them as a person who will be carrying the result rather than as a sceptic. Say the acceptance criterion out loud with the question, so that a vague answer is visibly vague to everyone in the room and not only to you. And treat an unanswered question as a finding rather than as an action item, because an action item gets carried forward and a finding changes the meeting.
Three questions
A team says they have thought about history being replaced and have set a one block wait. Against a three block reorg, what have they actually bought?
A lag shallower than the reorg is the dangerous middle. It reduces the wrong rows from 511 to 346 and it leaves a team believing the problem is handled. The lag has to be at least as deep as the reorg, and going deeper than that only holds more rows back.
In a design review, nobody can name who would keep the shared record if the project did not use this machinery. What does that tell you?
That is the question in the form that does the work. A name everyone accepts means a database with an audit log is cheaper on every dimension and can fix a row as well. No such name means you are in the one cell of four where the costs of sessions 1 to 4 are buying something.
What is the one-line version of all six sessions?
The first half is the finding from session 5 and it decides whether there should be a project. The second half is the pattern running through sessions 1 to 4 and it decides who needs to be in the room when the decision is made.
Homework
Twenty minutes, on the question you could not answer and on where to go next.
Send the question to the person who can answer it
The one from step 6, with its acceptance criterion attached, so that a vague reply is visibly vague. Give it a date. An unanswered question with no date becomes an assumption within a month.
Put the six somewhere you will find them
The cheat sheet below is the card version. Keep it wherever your design review notes live rather than wherever your training notes live, because the two are not the same place and only one of them gets opened.
Decide whether you need the practitioner track
If you or your team will be building any of this, the ten practitioner sessions start at reading a chain as a dataset and end with both benches driven by the reader. If you are only signing things off, the six you have just done are the whole of it.