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)
Installs
Repository
obra/clank
GitHub Stars
40
First Seen
Reducing Complexity — obra/clank