Brooks's Law

Adding [human resources] to a late software project makes it later.

-- Fred Brooks, 1975

This law first appeared in a classic book, The Mythical Man-Month. The central insight is...

Permalink

Conway's Law

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

-- Melvin Conway, 1968

Conway’s Law is considered a driving principle of software management. Once an engineering organization is...

Permalink

Fitt's Law

The time to acquire a target is a function of the distance to and the size of the target.

-- Paul Fitts, 1954

Originating in psychology and usability studies, this law studied the ease of grasping a physical...

Permalink

Gall's Law

A complex system that works has evolved from a simple system that worked. A complex system built from scratch won’t work.

-- John Gall, 1975

Originating in systems design, this law encourages software developers and product managers alike to begin...

Permalink

-- ,

Given enough use, there is no such thing as a private implementation. That is, if...

Permalink

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.

-- Auguste Kerckhoffs, 1883

This principle predates modern software development by several decades, but establishes an important principle that...

Permalink

Kernighan's Law

Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it?

-- Brian Kernighan, 1974

It’s commonplace to conclude that debugging is harder than writing a program; empirical studies have...

Permalink

Lady Lovelace's Objection

The Analytical Engine has no pretensions to originate anything. It can do whatever we know how to order it to perform.

-- Ada Lovelace, 1842

This law received its title from Alan Turing, in his famous 1950 paper Computing Machinery...

Permalink

Moore's Law

The complexity for minimum component costs has increased at a rate of roughly a factor of two per year. Certainly over the short term this rate can be expected to continue, if not to increase. Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain nearly constant for at least 10 years.

-- Gordon Moore, 1965

It’s fairly commonplace to observe that the average smartphone today is more powerful than even...

Permalink

Norvig's Law

Any technology that surpasses 50% penetration will never double again.

-- Peter Norvig, 1999

A somewhat tongue-in-cheek truism about technological adoption and numeracy in popular press. In point of...

Permalink

Postel's Law

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

-- Jon Postel, 1980

Established during the creation of the Internet Protocol, this principle encourages the development of robust...

Permalink

Wirth's Law

Software gets slower faster than hardware gets faster.

-- Niklaus Wirth, 1995

Commonly considered a rejoinder to Moore’s Law, this law comments on the tendency for software...

Permalink

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.

-- James Zawinski, 1995

This law is both comical and grim at once. Many programs are totally unrelated to...

Permalink