CSC 205/206/402/405/406
Software Engineering Laws
Professor Stearns


These laws are part humor and part exaggeration but each has a significant amount of truth.

Law Statement Citation
Brook's Law Adding manpower to a late software project makes it later. Mythical Man-Month, pg. 25
Client Law You have to keep the client happy CSC graduate Alex Brodd and many business references
Experience Law The devil isn't smarter; he's just been around longer. Leon Presser, UCSB Professor
Fisher's First Law Never trust the programmer Gene Fisher, Cal Poly CSC Dept.
Gilb's Law of Unreliability Any system that depends upon human reliability is unreliable. Tom Gilb
Meeting Law Meetings are a waste of time fundamental law of nature
Meldal's Law Trying to be smart is too ambitious. Try not to be stupid. Sigurd Meldal, Cal Poly Professor
Meyer's Law of Documentation Avoid documentation.
(Code and documentation as separate products will suffer from inconsistency.)
Bertrand Meyer in Object-Oriented Software Construction, pg. 205
Murphy's Law If anything can go wrong, it will. fundamental law of nature
New Tool Rule Don't use new tools on new projects! Dan Stearns (he probably read it somewhere but forgot )
Nuckles Principle If I just had one more tool, I'd get nothing done! Richard Nuckles, retired
Second System Effect Plan to throw [the 1st version] away; you will anyhow. Mythical Man-month, pg. 116
Users 1st Law Do what the user wants, not what he says he wants Chris Buckalew, Cal Poly CSC Department
Users 2nd Law Users change their minds, most often after the system is deployed. fundamental software engineering law
Weiler's Law Nothing is impossible for the man who doesn't have to do it himself. Citation unknown
Weinberg's Programmer Laws If a programmer is indispensable, get rid of him as quickly as possible Weinberg, The Psychology of Computer Programming, pg. 100


Last updated on 10/29/98