Laws of Software Engineering · Principle

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.

How to use it. When someone proposes "simplifying" something, ask who is going to deal with the complexity afterwards. The user? The person running the system? The next engineer? Be honest about the trade.

How it gets misused. Used to defend systems that are needlessly complicated. The irreducible part cannot be removed. The accidental mess on top of it can be.

Related

Clusters