Motivation & Complexity
Tesler's Law
Every process has a fixed amount of irreducible complexity. The only question is who deals with it, the system or the user.
Mechanism
Why it happens
Complexity doesn't disappear when it's hidden from the interface; it's transferred. The system absorbs it once in engineering effort, or every user absorbs it, every time.
Impact
Why it matters
- A form field a computer could infer is a tax charged to every single user
- "Simple UI" and "simple product" aren't the same thing. Hidden complexity still has to be solved somewhere
- One-time setup cost is almost always cheaper than a recurring per-use cost
Example
Without vs. with
A form asks users to manually select their country, currency, and timezone every time.
The system infers country, currency, and timezone from locale, and lets the user override if it's wrong.
Checklist
How to apply it
Push complexity into the system (smart defaults, auto-detection, validation) rather than onto every user
Before adding a setting or field, ask whether the system could infer it instead
When complexity genuinely can't be removed, make it a one-time cost, not a recurring one
Don't confuse hiding complexity with removing it
Where it shows up