anti-patterns
Common harmful approaches
Anti-patterns are approaches to recurring problems that appear helpful but prove counterproductive.
The term originated in software engineering, contrasting with design patterns (proven solutions): Premature optimization is a classic anti-pattern.
It has spread to business and organizational contexts: Micromanagement is an anti-pattern that kills team morale.
Where a pattern is something to emulate, an anti-pattern is something to recognize and avoid.
Poorly structured program
- reinventing the wheelRecreating what already exists
- magic numbersUnexplained literal values in code
- hardcodingFixed values in source
- lava flowMoving volcanic discharge
dead code · golden hammer · boat anchor · feature creep · scope creep · technical debt · code smell · overengineering
Built-in error in planning
- fallacyError in reasoning
- misconceptionErroneous belief or understanding
- false economySavings that backfire
- silver bulletPerfect single remedy
Focusing on insignificant matters
- analysis paralysisInaction from excessive deliberation
- design by committeeFlawed collaborative creation process
- death marchCoerced exhausting journey
- groupthinkConformity-driven poor decisions
ivory tower · meeting overload · email chains · micromanagement
Indicator of danger
- code smellIndicator of flawed design
- warning signIndicator of potential danger
- cautionary taleStory illustrating consequences
- bad omenSign foretelling misfortune
indicator · symptom · telltale sign · canary · signal · alert · lesson learned · case study
spaghetti code
Poorly structured program
- reinventing the wheelRecreating what already exists
- magic numbersUnexplained literal values in code
- hardcodingFixed values in source
lava flow · dead code · golden hammer · boat anchor · feature creep · scope creep · technical debt · code smell · overengineering · gold plating
design flaw
Built-in error in planning
- fallacyError in reasoning
- misconceptionErroneous belief or understanding
- false economySavings that backfire
bikeshedding
Focusing on insignificant matters
- analysis paralysisInaction from excessive deliberation
- design by committeeFlawed collaborative creation process
- death marchCoerced exhausting journey
groupthink · ivory tower · meeting overload · email chains · micromanagement
red flag
Indicator of danger
- code smellIndicator of flawed design
- warning signIndicator of potential danger
- cautionary taleStory illustrating consequences
bad omen · indicator · symptom · telltale sign · canary · signal · alert · lesson learned · case study · pitfall
- coding principlesKISS, KISS principle, keep it simple, clean code, code smell
- programming paradigmsobject-oriented, functional, procedural, declarative, imperative
anti-patternsbest practices
Proven effective methods
exemplars · models · paradigms · gold standards · benchmarks