Troutman's Laws of Computer Programming
-
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 require
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.