Laws of Software Engineering
Article
TL;DR: Visual reference of software engineering aphorisms — useful but none are actually laws.
Key Takeaways
- Knuth’s full quote: ignore small efficiencies 97% of time, not 100% — widely misapplied
- Chesterton’s Fence and Boyd’s Law of Iteration are notable omissions commenters flagged
- Real engineering skill is knowing when to break these rules, not memorizing them
Discussion
- Thread consensus: ‘laws’ is a misnomer — these are heuristics and context-dependent aphorisms
- Heated debate on SOLID and premature optimization being misused to avoid hard thinking
- Best insight: the meta-law that all software laws get immediately misinterpreted after writing
Top comments:
- [conartist6]: These laws contradict each other — picking one justifies anything you already want
- [ryanshrott]: Knuth’s 97/3 split is the whole point; people flip the intent entirely
-
[hunterpayne]: Meta-law: all engineering laws are immediately misinterpreted and mindlessly applied
The meta-law of software engineering: All laws of software engineering will be immediately misinterpreted and mindlessly applied in a way that would horrify their originators.
- [fenomas]: Copy-paste is free; abstractions are expensive — counter to DRY dogma