Reducing Complexity
Installation
SKILL.md
Reducing Complexity
Overview
Managing complexity is the most important technical topic in software development. All other technical goals—performance, features, elegance—are secondary to managing complexity.
Core principle: "There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies, and the other is to make it so complicated that there are no obvious deficiencies." - C.A.R. Hoare
Always choose the first way.
When to Use
Use as guiding principle for EVERY technical decision:
- Design decisions (class structure, subsystems, interfaces)
- Implementation decisions (algorithms, data structures)
- Refactoring decisions (what to simplify)
- Architecture decisions (how to partition system)
- Code review (primary evaluation criterion)