Programs Fall Apart

“Non pas des vérités acquises, mais l’idée d’une recherche libre”

Maurice Merleau-Ponty

 


Complexity is a Choice

Fred Brooks distinguished between essential complexity — the irreducible difficulty of the problem — and accidental complexity, the difficulty we introduce through our own choices. Most codebases suffer far more from the latter.

1. The Ratchet Effect

Complexity ratchets upward. Each small decision to add an indirection, introduce a framework, or split a service adds a thin layer of accidental complexity. No single layer is the problem. The accumulation is.

2. Simplicity as Discipline

Simplicity is not the absence of thought but its distillation. Writing simple code requires understanding the problem deeply enough to see what can be removed.