Fail Fast
Crash at the point of misconfiguration rather than degrading quietly into a wrong state.
Fail fast is the principle that a program should stop at the first moment it knows something is wrong, as close as possible to the cause, rather than continuing in a degraded state. The crash you get from a missing configuration value is not a defect — it is the signal you wanted.
The idea is easiest to see in its negation. A required setting read as PORT ?? "3000" will boot on a broken environment, bind the wrong port, and surface hours later as an authentication error nobody connects to the config. Reading it through a helper that throws on absence turns a mysterious downstream failure into a one-line startup error. See Defensive Default and Environment Variable.
Fail fast is not a blanket ban on fallbacks. Coalescing an absent list to an empty list is a narrowing convenience with no hidden state. The distinction is whether the default can stand in for a real value and be wrong: identity, credentials, hosts, ports, and secrets should never have one.
There is a reporting corollary. When a step cannot do its job, it should say so rather than emit a plausible-looking result. A build that produces five empty pages should report failure, not "built five pages" — honest reporting is what makes the metric usable at all. See Goodhart's Law.
See also6
Silent Failure
A failure that produces no signal, so the absence of an error reads as success.
Method63 connections
Monad
A wrapper type with a way to lift a value in and a way to chain functions that return more wrappers.
Computation & Algorithms9 connections
Secret Management
Storing, distributing, and rotating credentials without embedding them in code or history.
Systems & Tooling23 connections
Observability
How much of a system's internal state can be inferred from what it emits.
Method24 connections
Assertion
The statement in a test that must hold, and the only part that can actually fail.
Testing & Verification14 connections
Human in the Loop
Requiring a person's judgment at chosen points in an otherwise automated process.
Agents & Language Models10 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from17
- AssertionTesting & Verification
The statement in a test that must hold, and the only part that can actually fail.
- Automation BiasMethod
Over-trusting an automated recommendation, including against available contrary evidence.
- Binary SearchComputation & Algorithms
Finding a value in a sorted range by repeatedly discarding half of it.
- Branch CoverageTesting & Verification
The proportion of conditional outcomes exercised — the strictest ordinary coverage metric, and the most informative.
- CronSystems & Tooling
Time-based scheduling of recurring jobs, and the reasons scheduled jobs quietly stop working.
- Defensive DefaultMethod
A substituted value that papers over a missing input and hides the misconfiguration that produced it.
- Environment VariableSystems & Tooling
A named value in a process's environment, inherited by its children — the standard configuration channel.
- Goodhart's LawMethod
When a measure becomes a target, it stops being a good measure.
- Human in the LoopAgents & Language Models
Requiring a person's judgment at chosen points in an otherwise automated process.
- Law of TrivialityMethod
The time spent debating an item is inversely proportional to its actual stakes.
- MonadComputation & Algorithms
A wrapper type with a way to lift a value in and a way to chain functions that return more wrappers.
- ObservabilityMethod
How much of a system's internal state can be inferred from what it emits.
- Pascal's PrincipleMatter & Energy
Pressure applied to a confined fluid is transmitted undiminished throughout it.
- Postel's LawMethod
Be conservative in what you produce, liberal in what you accept — a design rule for interoperating systems.
- Schema ValidationAgents & Language Models
Checking data against a declared shape at runtime, and using the result as the typed value.
- Secret ManagementSystems & Tooling
Storing, distributing, and rotating credentials without embedding them in code or history.
- Silent FailureMethod
A failure that produces no signal, so the absence of an error reads as success.