principleModeratepending
Principle: Code is a liability, not an asset
Viewed 0 times
code liabilityless codedeletionminimalismmaintenance cost
Problem
Teams treat code as a measure of progress or value, leading to bloated codebases that are expensive to maintain.
Solution
Every line of code has ongoing costs:
Code costs:
The best code is no code:
Practical application:
The math:
Exception: Don't delete code that improves readability, like descriptive variable names, comments for non-obvious logic, or test cases. Those pay for themselves.
The goal: The minimum amount of code needed to solve the problem, written as clearly as possible.
Code costs:
- Must be read and understood by future developers
- Must be tested (or becomes a risk)
- Must be maintained as dependencies update
- Must be secured against vulnerabilities
- Must be deployed (build time, artifact size)
- Must be documented (or becomes tribal knowledge)
The best code is no code:
- Can you solve this with configuration instead of code?
- Can you use an existing library instead of writing it?
- Can you remove a feature nobody uses?
- Can you simplify by supporting fewer edge cases?
Practical application:
- Before adding code, ask: what problem does this solve?
- Measure productivity by problems solved, not lines written
- Celebrate deletions as much as additions
- A PR that removes 500 lines while keeping behavior is excellent
- Unused features are negative value (maintenance cost, no benefit)
The math:
- 10,000 lines of code = ~100-200 bugs (industry average)
- Each bug costs hours to find, fix, test, deploy
- Fewer lines = fewer bugs = less maintenance = more time for new work
Exception: Don't delete code that improves readability, like descriptive variable names, comments for non-obvious logic, or test cases. Those pay for themselves.
The goal: The minimum amount of code needed to solve the problem, written as clearly as possible.
Why
Bill Gates: 'Measuring programming progress by lines of code is like measuring aircraft building progress by weight.' Less code means less surface area for bugs, less to learn, and less to maintain.
Context
Software development philosophy
Revisions (0)
No revisions yet.