Cheat sheets

Outcomes, Workflows, Risks and Specs

Frame the outcome, ground the workflow, rank assumptions, pick a slice, write the spec, set metrics, choose a stage.

  • Concepts and terms
  • Tasks and commands
  • Annotated code
  • Diagrams
  • Comparisons
  • Defaults and numbers
  • Troubleshooting
  • Questions and tips

Source

From request to stage#

1Outcomeframe the result without naming a solution.2Workflowrecord the steps people perform, with evidence.3Assumptionsscore the bets. Test the riskiest open onefirst.4Slicepick the smallest slice that covers the requiredproof.5Specificationfix invariants. Mark each decision mode.6Metricsset thresholds before results exist.7Stagechoose prototype, pilot or production.

From Lesson 14.47, Lesson 14.48, Lesson 14.49, Lesson 14.50, Lesson 14.51, Lesson 14.52, Lesson 14.53

Choose a stage#

noyesnoyesclientUnknownthe learning questionNeeds real users ordata?choose_stageprocessPrototypediscardable, isolatedConsequencebounded, ops ready?consequence below 4processPilotnamed audience,rollbackprocessProductionowned continuouslynoyesnoyesclientUnknownthe learning questionNeeds real users ordata?choose_stageprocessPrototypediscardable, isolatedConsequencebounded, ops ready?consequence below 4processPilotnamed audience,rollbackprocessProductionowned continuously

From Lesson 14.53, 14.53 code/main.py

Outcome frame#

User
who experiences the problem directly?
Situation
when and where does it occur?
Current behavior
what happens today, with workarounds?
Desired outcome
what observable state improves?
Constraints
fixed safety, policy, cost or compatibility limits.
Non-goals
tempting adjacent work that is excluded.
Solution leakage
a product form, model or framework in the outcome.

From Lesson 14.47, 14.47 code/main.py

Formulas from the labs#

Risk
\mathrm{impact} \times \mathrm{uncertainty} + \mathrm{irreversibility}
Slice score
\frac{\mathrm{value} + \mathrm{uncertainty\ reduced}}{\mathrm{effort} + \mathrm{risk\ penalty}}
Risk penalty
consequence times 2 if not reversible, else times 0.5.
Eligible slice
the required proof is a subset of proves.
Direct evidence ratio
direct items over all evidence items.
at-most
passes when value is at or below the threshold.
at-least
passes when value is at or above the threshold.

From 14.48 code/main.py, 14.49 code/main.py, 14.50 code/main.py, 14.52 code/main.py

Assumptions and evidence#

Value
will the outcome matter enough?
Usability
can the user understand and act on it?
Feasibility
can the system produce it with the data and constraints?
Viability
can the organization sustain cost, ownership and operation?
Safety
can it fail without unacceptable consequence?
Evidence ladder
direct behavior, artifact, reported behavior, inference.
Proof of current behavior
only the first two rungs.

From Lesson 14.49, Lesson 14.48

Three decision modes#

FactorLockedBoundedDelegated
Agent mayNot chooseChoose inside limitsOwn the choice, explain it
Use forSafety, authority, public compatibilitySearch budgets, retry countsNames, reversible refactors
Next stepHuman checkpointAgent proposes within limitsAgent implements and proves
RationaleRequiredRequiredOptional
Output keyhuman_checkpointbounded_decisionsagent_may_decide

From Lesson 14.51, 14.51 code/main.py

Questions#

A cheap slice scores high but misses proof?
It stays ineligible.
Every result says keep building?
The slice is not an experiment.
Can a lower layer prove a higher claim?
No. A unit test proves a local contract only.
Offline replay or pilot?
Neither substitutes for the other.
When does production begin?
When the organization accepts ongoing responsibility.

From Lesson 14.50, Lesson 14.51, Lesson 14.52, Lesson 14.53, Lesson 14.48

Tips#

  • Avoid false minimums: UI-only, infrastructure-only, happy-path, demo, platform.
  • Write a stop rule before implementation.
  • Write pass, fail and ambiguous paths before you see results.
  • Mark the stage in configuration, access control, telemetry and docs.

From Lesson 14.50, Lesson 14.52, Lesson 14.53, Lesson 14.49

Prototype, pilot, production#

FactorPrototypePilotProduction
QuestionCan the mechanism produce the evidence at all?Does it work safely with a bounded real audience?Can we own it at the promised reliability?
Use whenNo real users or data neededReal behavior needed, consequence not readyConsequence bounded, operations ready
ControlsSynthetic or recorded inputs, discardableLimited audience, rollback, human owner, audit trailSLO, on-call owner, security review, monitoring
ExitMechanism earns another stageExpand, revise or stopRetirement path

From Lesson 14.53, 14.53 code/main.py

Metric contract#

plan = MeasurementPlan(
goal="Reduce time to identify the affected service without increasing unsafe actions",
questions=["How quickly is the correct service identified?"],
metrics=[
Metric("median_identification_seconds", "at-most", 120,
"ten incident replays", "replay log", "outcome"),
Metric("correct_service_rate", "at-least", 0.9,
"ten incident replays", "incident record", "outcome"),
Metric("production_writes", "at-most", 0,
"entire pilot", "audit log", "guardrail"),required kind
])
report(plan, values)missing value gives status missing

From 14.52 code/main.py, Lesson 14.52

Lab functions#

TaskCode
Run a lab and its testspython3 -m unittest discover code/tests -v
Frame statusdecision(frame)
Audit workflow evidenceaudit(steps)
Rank assumptionsprioritize(items)
Highest open risknext_experiment(items)
Pick an eligible slicechoose(items, required_proof)
Spec to contractcompile_contract(specification)
Stage and its controlsplan(decision)

From 14.47 code/main.py, 14.48 code/main.py, 14.49 code/main.py, 14.50 code/main.py, 14.51 code/main.py, Lesson 14.53, 14.53 code/main.py

Lab constants#

SettingDefaultNote
Risk dimensionsrange(1, 6)Impact, uncertainty, irreversibility
Evidence confidence0 <= item.confidence <= 1Else an issue
Workflow orderrange(1, len(steps) + 1)Contiguous from one
VALID_MODES{"locked", "bounded", "delegated"}Other modes are invalid
Stage consequence1 <= decision.consequence <= 5Else an error
Pilot at consequence4Or not reversible, or not ready

From 14.48 code/main.py, 14.49 code/main.py, 14.51 code/main.py, 14.53 code/main.py

Validator messages#

SymptomCauseFix
desired outcome names the proposed outputSolution leaked into the outcomeState the observable result instead
non-goals are emptyNo boundary on the sliceAdd concrete non-goals that reject work
no slice proves the required assumptionsCandidates skip the risky partDesign a slice that covers the proof set
constrained decision lacks rationaleLocked or bounded without a reasonWrite the reason for the limit
guardrail metric is missingOnly outcome metricsAdd a production_writes guardrail

From 14.47 code/main.py, 14.50 code/main.py, 14.51 code/main.py, 14.52 code/main.py