DevIQ-gatsby icon indicating copy to clipboard operation
DevIQ-gatsby copied to clipboard

Tesler’s Law of Conservation of Complexity

Open ardalis opened this issue 4 months ago • 0 comments

Origin: Larry Tesler, a computer scientist at Xerox PARC and later Apple.

Statement: Every application has an inherent amount of irreducible complexity. The only question is who will have to deal with it — the user, the developer, or the system.

Meaning: You can’t get rid of complexity altogether; you can only shift it around. For example:

If you hide configuration behind “defaults,” the developer has to manage more complexity in the code.

If you expose endless options, the user shoulders the burden of understanding them.

If you push decisions to the system, then the algorithm or infrastructure must absorb it.

Example:

Think of printing. If the app decides paper size automatically → the system carries complexity.

If the dialog shows 20 different paper options → the user carries complexity.

If the developer codes defaults plus customization → the developer carries complexity.

ardalis avatar Sep 01 '25 03:09 ardalis