name: inversion-exercise description: "Flip core assumptions to reveal hidden constraints and alternative approaches - 'what if the opposite were true?'" last_updated: 2026-01-10 tools_required: [] agent_type: main_agent
Inversion Exercise
Flip every assumption and see what still works.
[GOAL]
Challenge "the only way" by systematically inverting assumptions.
[CONTEXT]
Core principle: Inversion exposes hidden assumptions and alternative approaches.
Use when:
- "There's only one way to do this"
- Forcing a solution that feels wrong
- Can't articulate why an approach is necessary
- "This is just how it's done"
[PROCESS]
- List core assumptions - What "must" be true?
- Invert each systematically - "What if opposite were true?"
- Explore implications - What would we do differently?
- Find valid inversions - Which actually work somewhere?
[EXAMPLES]
| Normal Assumption | Inverted | Reveals |
|---|---|---|
| Cache to reduce latency | Add latency to enable caching | Debouncing patterns |
| Pull data when needed | Push data before needed | Prefetching, eager loading |
| Handle errors when occur | Make errors impossible | Type systems, contracts |
| Build features users want | Remove features users don't need | Simplicity >> addition |
| Optimize for common case | Optimize for worst case | Resilience patterns |
[WORKED EXAMPLE]
Problem: Users complain app is slow
Normal approach: Make everything faster (caching, optimization, CDN)
Inverted: Make things intentionally slower in some places
- Debounce search (add latency → enable better results)
- Rate limit requests (add friction → prevent abuse)
- Lazy load content (delay → reduce initial load)
Insight: Strategic slowness can improve UX
[IMPORTANT]
- Not all inversions work - test boundaries
- Valid inversions reveal context-dependence
- Sometimes the opposite IS the answer
- Question every "must be" statement
See Also
- [[when-stuck]] - Dispatch to right technique
- [[collision-zone-thinking]] - Force unrelated concepts together