The Laws of Software

Arvind Padmanabhan

Moore's Law

Processing power

per unit cost

doubles every two years.

1965: Doubles every year

1975: Doubles every 2 years

Today: Doubles every 2.5 years

 Amdahl's Law

There's a upper limit to the theoretical speed up due to parallel processing.

 Gustafson's Law

When more processing is available, users tend to solve more complex problems.

Parkinson's Law

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

Data expands to fill the space available for storage.

Wirth's Law

Software gets slower faster than hardware gets faster.

Grosch's Law

Computer performance increases as the square of the cost. If computer A costs twice as much as computer B, you should expect computer A to be four times as fast as computer B.

Postel's Law

Be liberal in what you accept, and conservative in what you send.


Jon Postel

1976: TCP/IP

Claasen's Law

Usefulness = log(Technology)

Clarke's Third Law

Any sufficiently advanced technology is indistinguishable from magic.


Arthur C. Clarke

Asimov's Laws of Robotics

  1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
  2. A robot must obey orders given it by human beings except where such orders would conflict with the First Law.
  3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.

Brooks's Law

Adding manpower to a late software project makes it later.

Cooper's Law

The maximum number of voice/data calls that can be conducted in all of the useful radio spectrum over a given area doubles every 30 months.

Cunningham's Law

The best way to get the right answer on the Internet is not to ask a question, it’s to post the wrong answer.

Linus's Law

Given enough eyeballs, all bugs are shallow.

Linus Torvalds

Conway's Law

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

Swanson's Law

Cost of the photovoltaic cells falls by 20% with each doubling of global shipment.

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.

Fitt's Law

The time to acquire a target is a function of the distance (D) to and the size (W) of the target.

Greenspun's Tenth Rule

Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

 Barabási's Law of Programming

Program development ends when the program does what you expect it to do—whether it is correct or not.

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.

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.

The Laws of Software

By Arvind Padmanabhan

The Laws of Software

Moore's Law, Postel's Law, and many more.

  • 1,110