Laws of Software Engineering · Principle
Principle
No Silver Bullet
There is no single technique that will produce a ten-fold improvement in productivity within a decade. The hard part is the essential complexity of the problem itself.
How to use it. When someone claims a new tool or method will transform productivity, ask which part of the work it removes: the essential complexity (understanding the problem) or the accidental complexity (typing the code, fighting the tools). Real gains come from the second. The first is irreducible.
How it gets misused. Used to refuse all new tools. Brooks argues that the gains are smaller than the marketing claims. He never says they are zero. Compilers, garbage collection, version control, and now better LLMs all genuinely help. They just do not produce miracles.
Related
-
Principle Tesler's Law (Conservation of Complexity) Every system has some complexity that cannot be removed. You can move it around, but it has to live somewhere.
-
Principle Law of Leaky Abstractions Anything that hides complexity will eventually let some of that complexity show through.
Clusters
- The Brooks cluster - One author whose work shapes most of the field.
- The Code Design cluster - How to write code that survives change.