Laws of Software Development

Came across these the other day, they’re neat little snippets of knowledge

  • Postel’s Law – “Be conservative in what you send, liberal in what you accept.”

  • Parkinson’s Law – “Work expands so as to fill the time available for its completion.”

  • Pareto Principle – “For many phenomena, 80% of consequences stem from 20% of the causes.”

  • Sturgeon’s Revelation – “Ninety percent of everything is crud.”

  • Hofstandter’s Law – “A task always takes longer than you expect, even when you take into account Hofstadter’s Law.”

  • Murphy’s Law – “If anything can go wrong, it will.”

  • Brook’s Law – “Adding manpower to a late software project makes it later.”

  • Conway’s Law – “Any piece of software reflects the organizational structure that produced it”

  • Kerchkhoff’s Principle – “In cryptography, a system should be secure even if everything about the system, except for a small piece of information – the key – is public knowledge.”

  • Linus’s Law – “Given enough eyeballs, all bugs are shallow”

  • Reed’s Law – “The utility of large networks, particularly social networks, scales exponentially with the size of the network.”

  • Metcalfe’s Law – “In network theory, the value of a system grows as approximately the square of the number of users of the system.”

  • Wirth’s Law – “Software gets slower faster than hardware gets faster.”

  • Zawinski’s Law – “Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.”

  • Occam’s Razor – “When two explanations are offered for a phenomenon, take the simplest.”

  • Amara’s Law – “We tend to overestimate the effect of a technology in the short run and underestimate the effect in the long run”

  • 90 – 90 Law – “The first 90% of the software takes 90% of the time to build, and the last 10% of the software takes the other 90% of the time.”