Builtpublic

S6 · Writing the sheet

The live sheet gets touched exactly once and read back afterwards. The questions left behind have standards too.

touched once

This is the first and last time the live spreadsheet is touched. Every earlier stage runs on local files.

Idempotence is bought with an ownership marker

Creating a tab leaves a marker saying we made it. So a re-run branches three ways.

  • No tab → create one
  • Ours → clear and rewrite — run it any number of times, same result
  • Somebody else’s tab → don’t touch it; create a new one with a suffix

And under no circumstances is any tab other than the target touched. A live sheet is a document holding other people’s work alongside mine. One wrong deletion there has no undo.

Write, then read it back

It doesn’t finish on write. It re-dumps and confirms a zero diff, then separately checks for #ERROR! values the sheet produced by evaluation.

Because what you wrote and what is displayed can differ. A spreadsheet sometimes interprets cell contents as a formula, so the transfer succeeds while the screen shows an error. Trusting the success response alone means never seeing it.

Reading it back costs one call. Skipping that one call means handing over a broken tab believing it is finished.

The questions left behind have standards too

The sheet doesn’t only carry cases. Things to ask the spec author and test data to request get their own columns. And those sentences have rules.

Write them as questions. “Value undecided” gets read by nobody. It has to be a sentence the recipient can answer as written.

When asking for a number, supply a candidate.

BAD

Maximum inventory slot count undecided

GOOD

How many inventory slots is the maximum? Is it 500?

An open question doesn’t get answered. Attach a value — even a guess — and it becomes answerable with a yes or no, and that is when answers start arriving. Candidates come from the data tables, a similar system, or an existing case, and a guess is written so it reads as a guess.

Two prohibitions go with it.

  • Our own work defects never go in this column. Turning “I didn’t analyse this properly” into a question for the spec author is the worst version of it.
  • Never ask something already answered. Ask about what’s written in the spec and, from then on, nobody looks at this column.

The second one matters most. The value of a question list is not its length but its hit rate. One “that’s in the document” and the credibility of the whole list is gone.