Also known as the Law of Conservation of Complexity, this principle states that every system contains a minimum amount of complexity that cannot be removed — it can only be shifted. Designers absorb this irreducible complexity into the system or backend so users don't have to carry it themselves.
Common contexts
- Designing a travel booking flow that auto-fills timezone differences so users don't calculate them manually
- Deciding whether to expose advanced filter logic to users or encode it as sensible defaults in the system
- Pushing back on a product request to add more user-configurable options by arguing the system should absorb that complexity
Use when
Invoke Tesler's Law when a feature request asks users to make a decision that the system already has enough context to make for them — whenever the product can reasonably infer the right answer, presenting it as a user choice is just offloading engineering work onto the user.
Avoid when
Don't over-apply Tesler's Law in high-stakes domains like medical dosing, legal configuration, or financial settings where users must remain in explicit control. Hiding complexity from users who need to understand and verify it creates a different, more dangerous kind of failure.
Every time you add a setting to 'give users control', ask honestly whether you're solving a real user need or avoiding a difficult product decision — most power-user settings are complexity the team didn't want to own.
Real-world examples
- Gmail's 'undo send' feature exemplifies Tesler's Law: the inherent complexity of 'take back a sent email' couldn't be eliminated, but Gmail absorbed it into their server infrastructure rather than exposing it as user complexity.
- Apple's Face ID absorbed the complexity of authentication (multi-angle 3D facial recognition) entirely into the device hardware, eliminating the cognitive and physical complexity of remembering and typing a passcode.
- Amazon's 1-Click checkout moved address and payment management complexity from the purchase moment to account setup — a classic Tesler trade-off that shifted complexity to a more appropriate point in the experience.