Troutman's Laws of Computer Programs
- Any running program is obsolete.
- Any planned program costs more and takes longer.
- Any useful program will have to be changed.
- Any useless program will have to be documented.
- The size of a program expands to fill all available memory.
- The value of a program is inversely proportional to the weight of
output.
- The complexity of a program grows until it exceeds the capability of
the maintainers.
- Information necessitating a change in design is always conveyed to
the implementors after the code is written. Corollary: Given a
simple choice between one obviously right way and one obviously wrong
way, it is often wiser to choose the wrong way, so as to expedite
subsequent revision.
- The more innocuous a modification appears, the more code it will re-
quire rewriting.
- If a test installation functions perfectly, all subsequent systems
will malfunction.
- Not until a program has been in production for at least six months
will the most harmful error be discovered.
- Interchangeable modules won't.
- Any system that relies on computer reliability is unreliable.
- Any system that relies on human reliability is unreliable.
- Investment in reliability increases until it exceeds the probable
cost of errors, or until someone insists on getting some useful work
done.
- Adding manpower to a late software project makes it later.
- There's always one more bug.