Laws of Software Engineering · Principle
Principle
Law of Leaky Abstractions
Anything that hides complexity will eventually let some of that complexity show through.
How to use it. Train people on the layer under the one they work in. Plan time for understanding what is leaking and why.
How it gets misused. Used to argue against hiding complexity at all. A leaky abstraction still beats no abstraction. The alternative is everyone working at the lowest level.
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 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.
Clusters
- The Code Design cluster - How to write code that survives change.