System Design Principles
Tesler's Law
Every system has irreducible complexity — shift it from user to system.
In practice
Takeaways
- 1
Some complexity cannot be removed, only moved.
- 2
Handle edge cases in the system instead of the UI when possible.
- 3
Expose advanced controls only to users who need them.
Origins
Tesler’s Law, also called the law of conservation of complexity, argues that total complexity is fixed — the question is who pays for it. Great products absorb complexity through defaults, automation, and intelligent constraints.
Users should feel simplicity even when the backend work is substantial.
Design Applications
- Offer recommended presets for complex configuration.
- Auto-detect sensible values from context.
- Hide advanced options behind an explicit “Advanced” entry point.
Frequently Asked Questions
Further Reading
Related Principles
View all ›System Design Principles
Occam's Razor
Prefer the simplest solution that works.
Learn more ›Cognitive Load & Decision Making
Cognitive Load
Mental effort required to use an interface should be minimized.
Learn more ›Cognitive Load & Decision Making
Hick's Law
Decision time grows with the number and complexity of choices.
Learn more ›Tools worth a look
Some links are affiliate links — see disclosure.