Common structures that cause harm.
THE BIG BALL OF MUD
No discernible structure. Everything reaches everything.
THE GOD OBJECT
One class doing most of the work, which nobody can change safely.
SPAGHETTI CODE
Control flow nobody can follow.
COPY AND PASTE PROGRAMMING
The same logic in many places, diverging over time.
PREMATURE OPTIMISATION
Complexity added for performance nobody measured.
PREMATURE ABSTRACTION
Generality added for requirements that do not exist.
THE GOLDEN HAMMER
One familiar tool applied to every problem.
MAGIC NUMBERS AND STRINGS
Unexplained values, scattered.
SHOTGUN SURGERY
One conceptual change requiring edits in many places.
WHAT THAT LAST ONE INDICATES
A missing abstraction, or boundaries drawn in the wrong place.
CARGO CULT PROGRAMMING
Practices followed without understanding why.
WHAT MOST OF THESE SHARE
They arise gradually, and each individual step seemed reasonable.
WHAT PREVENTS THEM
Review, refactoring as you go, and asking what problem each addition solves.