Laws of Software Development
Tuesday, November 18th, 2008Nat Pryce has compiled a list of Laws of Software Development (and an addendum). I hadn’t seen all of them before, but I enjoyed the entire list. Some of my personal favorites:
Brooks’ Law
… adding manpower to a late software project makes it later.
The Cardinal Fundamental Law of Programming
It’s harder to read code than to write it.
And here are some that are perfect reminders for why agile methods are a good idea:
Hartree’s Law
The time from now until the completion of the project tends to become constant.
Hofstadter’s Law
It always takes longer than you expect, even when you take into account Hofstadter’s Law.
Lehman’s Law of Continuing Change
A program that is used in a real-world environment must change, or become progressively less useful in that environment.
Lehman’s Law of Increasing Complexity
As a program evolves, it becomes more complex, and extra resources are needed to preserve and simplify its structure.
The Ninety/Ninety Rule
The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.
There’s a lot of good stuff in there. Be sure to check out his full list.

