Own irreducible complexity

Tesler's Law

Language

Tesler’s Law (conservation of complexity): for any system, a baseline complexity cannot disappear — only move between user, interface, and engineering. Good products absorb complexity so fewer people trip on it.

Complexity shifted layers
Move work to the right layer.
Smart defaults UI
Absorb repetition in code.

Shift burden to software

Defaults, automation, templates, and smart filters move complexity out of repetitive user decisions.

Expose complexity only to experts

Advanced modes, bulk editors, and JSON exports belong behind clear gates — not on the default path.

Engineering trade-offs

If UX simplification pushes edge cases to support, measure ticket volume — sometimes a small UI control saves many hours.

Practices

  • Prefer opinionated workflows with escape hatches.
  • Invest in admin tooling instead of training users on raw data.

Common pitfalls

  • Hiding complexity without documenting recovery paths.
  • Dumping all expert toggles on first-time users.