Skip to content
How to ThinkIn the Age of AI
Rulev2RL-527

Detect errors at the earliest catchable point — correction…

Place error detection checkpoints at the earliest point in a process where the error can first be caught, because correction cost increases exponentially with propagation distance downstream.

Why This Is a Rule

Barry Boehm's cost curve (1981) demonstrated that software defects caught in requirements cost 1x to fix, in design 5x, in coding 10x, in testing 50x, and in production 200x. The exponential increase is not software-specific — it applies to any process where downstream steps build on upstream outputs. An error in a foundation affects everything built on top of it; the deeper the propagation, the more rework is required.

"Shift left" — moving detection earlier in the process — exploits this cost curve. A checkpoint at step 2 of a 10-step process catches errors before 8 steps of work build on the flawed output. The same checkpoint at step 8 catches the error but requires rework of steps 3-7. At step 10, the entire pipeline needs rework.

The "earliest catchable point" qualifier is important: some errors can't be detected until a later step produces enough output to reveal the problem. The checkpoint goes at the first point where detection is possible, not at step 1 regardless of what's detectable there. This requires understanding what each step produces and what errors become visible at each stage.

When This Fires

Common Failure Mode

Placing all checkpoints at the end: "We'll review everything before shipping." End-of-process review catches errors but only after maximum propagation. An error introduced at step 2, caught at step 10, requires rework of 8 steps. The same error caught at step 3 requires rework of 1 step. End-of-process review is the most expensive possible detection architecture.

The Protocol

(1) Map your process: what does each step produce, and what errors can first be detected at each step? (2) For each error type: identify the earliest step where this error becomes detectable. Place a checkpoint there. (3) The checkpoint doesn't need to be comprehensive — a quick validation that catches the most common upstream errors is sufficient (Checklists are 5-10 items that catch what competent people…). (4) Multiple small checkpoints distributed early in the process outperform a single comprehensive checkpoint at the end. Each early checkpoint reduces the propagation distance for its error category. (5) Track where errors are actually caught: if most errors are caught at late checkpoints, you're missing opportunities for earlier detection. Can those error types be detected sooner?