Laws that control Software

Conway's Law

organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations

— Melvin E. Conway

Further Reading

Hofstadter's Law

It always takes longer than you expect, even when you take into account Hofstadter's Law.

— Douglas Hofstadter (Author of Gödel, Escher, Bach: An Eternal Golden Braid)

Hick's Law

The time to make a decision is a function of the possible choices he or she has.

— William Edmund Hick

Further Reading

  • The Paradox of Choice - Why More Is Less, by Barry Schwartz (2004)

Brooks's Law

adding manpower to a late software project makes it later

— Fred Brooks (Author of The Mythical Man-Month)

Miller's Law

All discussions of incremental updates to Bugzilla will eventually trend towards proposals for large scale redesigns or feature additions or replacements for Bugzilla.

— Mike Beltzner

Sturgeon's Law

90% of everthing is crud.

— Theodore Sturgeon

Hanlon's Razor

Never attribute to malice that which is adequately explained by stupidity

— Robert J. Hanlon

SNAFU Principle

Communication is only possible between equals

Ninety-Ninety Rule

"The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time."

— Tom Cargill of Bell Labs

Murphy's Law

“If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.”

Putt's Law

"Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand

— Archibald Putt

Gall's Law

"A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work."

— John Gall

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