Atwood's Law

Any application that can be written in JavaScript, will eventually be written in JavaScript.

-- Jeff Atwood, 2009

Ultimately this law concerns software distribution: the web is the best mechanism for distributing software,...

Permalink

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

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.

-- Ward Cunningham, 1980

Cunningham’s formulation was apocryphally described in a comment on Ben Schott’s blog in 2010. As...

Permalink

Doerr's Law

We need teams of missionaries, not teams of mercenaries.

-- John Doerr, 2015

The point of this law is that product teams should be mission-oriented: engaged, autonomous, and...

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

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.

-- Philip Greenspun,

This “tenth” rule is not really preceded by nine other rules, and its original date...

Permalink

Hyrum's Law

With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.

-- Hyrum Wright, 2012

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

Peter Principle

People in a hierarchy tend to rise to "a level of respective incompetence."

-- Laurence J. Peter, 1969

The Peter Principle, founded on research conducted by Laurence J. Peter, states that individuals rise...

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

Shirky principle

Institutions will try to preserve the problem to which they are the solution.

-- Clay Shirky, 2010

This law is really about business generally rather than software in particular. However, it has...

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