System Design Principles

Tesler's Law

Every system has irreducible complexity — shift it from user to system.

Illustration for Tesler's Law

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