Post

Some laws in software development

Brooks’s Law

Adding more people to a late project makes it even later. Fred Brooks

Conway’s Law

Any piece of software reflects the organizational structure that produced it. Melvin Conway

Cope’s Rule

In evolution, there is a general tendency towards increased size. Edward Drinker Cope

Hoare’s Law and Schainker’s Inverse Law

Behind a big problem there is always a small problem struggling to get out. Within a small problem there is always a big problem struggling to get out. Tony Hoare

Hofstadter’s Law

A task always takes longer than you expect, even when you take into account Hofstadter’s Law. Douglas Hofstadter

Linus’s Law

Given enough eyeballs, all bugs are shallow. Linus Torvalds

Lister’s Law

People under time pressure don’t think faster. Tim Lister

Nathan’s First Law

Software is a gas; it expands to fill the container it occupies. Nathan Myhrvold

Ninety-ninety rule

The first 90% of the code accounts for the first 10% of the development time. The remaining 10% of the code absorbs 90% of the development time. Tom Cargill

Occam’s Razor

Among competing hypotheses, the one with the fewest assumptions should be selected (original in Latin: “entia non sunt multiplicanda praeter necessitatem”, which could be translated as “entities should not be multiplied beyond necessity”). William of Ockham

Pareto Principle (a.k.a. “The 80-20 rule”)

80% of the consequences come from 20% of the causes Vilfredo Pareto

Parkinson’s Law

Work expands so as to fill the time available for its completion. C. Northcote Parkinson

Tesler’s Law of Conservation of Complexity

You cannot reduce the complexity of a task beyond a certain point. Once that point has been reached, you can only shift the complexity from one part to another. Larry Tesler

The Pesticide Paradox

Every method you use to prevent or detect errors leaves another residue of errors against which these first methods are ineffective. Bruce Beizer

Flon’s Axiom

There is not and never will be a programming language in which it is difficult to write bad programs. Lawrence Flon Lehman’s Laws of Software Evolution

Law of Demeter

Only talk to your immediate friends. Don’t talk to strangers.

A method of an object can only call methods of:

  • 1 – The object itself.
  • 2 – An argument of the method.
  • 3 – Any object created within the method.
  • 4 – Any direct property/field of the object itself.
Expand the information with the basic principles in software development
This post is licensed under CC BY 4.0 by the author.