Technology Aphorisms

Recently I was talking to another professional with decades of technology experience. When I dropped a reference to bike-shedding, I was met with a blank stare. Given he had never heard of the reference, much less know the difference between that and yak shaving, I decided something had to be done.

Over my professional career, I’ve collected numerous pithy statements about technology. Some of these aphorisms are serious; others, not so much. But folks seem to find these things useful. Internalizing may not make you a better technologist. However, the next time you’re stuck, you’ll know you’re not alone.

A parody O'Reilly book cover for Yak Shaving.
Yak Shaving. The definitive guide.

Now, onto the aphorisms!

Technology Aphorisms

Amdahl’s Law

Named for Gene Amdahl and created in 1967, Amdahl’s Law states that there will always be a limit on the speed possible with parallization, since only a portion of any task can be parallelized. Amdahl’s Law is a precurser to the Universal Scaling Law.

Ashby’s Law

For a system to be stable, the number of states that its control mechanism is capable of attaining must be greater than or equal to the number of states in the controlled system. Or, in Jade Bloom’s words, “complex environments (and wicked problems) require complex organizations”. Attributed to British cybernetician W. Ross Ashby.

Baader-Meinhof Effect

The name given to a frequency or recency illusion where once something has been noticed, then every instance of that thing is noticed, leading to the belief it has a high rate of occurrence.

Balk’s Law

Everything you hate about the Internet is actually everything you hate about people. Attributed to Awl co-founder Alex Balk.

Betteridge’s Law of Headlines

Any article with a headline or title that ends in a question mark can be summarized by ‘no’. Attributed to British technology journalist Ian Betteridge.

Bike Shedding

The act of wasting time on trivial details while important matters are inadequately attended to. See also Parkinson’s Law of Triviality.

Brandolini’s Law

Says “the amount of energy needed to refute bullshit is an order of magnitude bigger than to produce it.” Named for Alberto Brandolini, an Italian programmer.

Brooks’s Law

Adding people to a late software project makes it later. Attributed to Fred Brooks, author of the book Mythical Man Month.

Cellan-Jones Principle

You can either explain quantum computing so that it’s understandable or factually correct, but never both simultaneously. Attributed to Rory Cellan-Jones.

Clarke’s Third Law

Any sufficiently advanced technology is indistinguishable from magic. Attributed to British science fiction writer Arthur C. Clarke.

Conway’s Law

Any piece of software reflects the organizational structure that produced it. Attributed to computer scientist Melvin Conway.

Correlation Principle

As defined by software development coach Geepaw Hill, the Correlation Principle says that our productivity is tightly correlated with the internal quality of software.

Cunningham’s Law

The best way to get the right answer is not to ask questions; it’s to post the wrong answer. Attributed to the wiki creator, Ward Cunningham.

Demeter (Law of)

The Law of Demeter (LoD) or principle of least knowledge is a design guideline for software, particularly object-oriented programs. It is summarized as (1) each unit should have limited knowledge of other units, (2) each unit should only talk to its friends, and (3) only talk to your immediate friends. First proposed by Ian Holland.

Dunbar’s Number

The theory an individual can only maintain stable relationships with up to 150 people. Attributed to British anthropologist Robin Dunbar.

Dunning–Kruger Effect

A cognitive bias in which unskilled individuals suffer from illusory superiority, mistakenly rating their ability much higher than average. Described by social psychologists David Dunning and Justin Kruger.

Eagleson’s Law

Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else.

Finagle’s Law

Anything that can go wrong will and at the worst possible moment.

Fitt’s Law

A design law that states the longer the distance to move a cursor and smaller the target size, the longer it takes. It was originally described by Paul Morris Fitts in a 1954 paper.

Gall’s Law

A complex system that works is invariably found to have evolved from a simple system that worked.

Gilder’s Law

Bandwidth grows at least three times faster than computer power. Attributed to author George Gilder.

Godwin’s Law

An adage that asserts that the longer an online discussion goes on, the probability of a comparison involving Nazis or Hitler approaches 1. Promulgated by the American attorney and author Mike Godwin.

Goodhart’s Law

Turning a metric into a target makes it a bad metric. Attributed to economist Charles Goodhart.

Gracely’s Theorem

A theorm that states that there are very few new ideas, rather there are mostly advancements because of improved CPUs and Networking speeds. Attributed to Brian Gracely.

Hanlon’s Razor

Never attribute to malice that which is adequately explained by stupidity. Coined by Robert J. Hanlon. See also Occam’s Razor.

Hofstadter’s Law

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

Huang’s Law

Huang’s Law is named for Nvidia’s chief executive and co-founder Jensen Huang. It was coined by Chrisopher Mims. It says the performance of GPU chips (which excel at parallel processing) will double every year. This is compared to Moore’s Law, which described performance of a single-threaded CPU.

Hyrum’s Law

With a sufficient number of users of an API, it does not matter what you promised in the contract. All observable behaviors of your interface will be depended upon by somebody. Attributed to Hyrum Wright, a Google software engineer. See also the Law of Leaky Abstractions.

Jevons Paradox

An economic phenomenon that says when technological process increases the efficiency with which something is used, the rate of consumption exceeds previous consumption due to increasing demand. Named for English economist William Stanley Jevons.

Katz Conjecture

The conjecture states that to effectively use any abstraction, you must - eventually - have a solid understanding of what it’s abstracting. The conjecture has two implications: any abstraction that doesn’t sufficiently simplify what it’s abstracting makes everything worse, and any abtraction you don’t understand is a risk to your project. Named after Yehuda Katz.

Kernighan’s Law

Debugging is twice as hard as writing code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. Attributed to author and C Programmer Brian Kernighan.

KISS Principle

‘KISS’ is an acronym that stands for “Keep It Simple, Stupid”. Associated with aircraft engineer Kelly Johnson and noted by the U.S. Navy in 1960. See Occam’s razor.

Law of Leaky Abstractions

Coined by software developer Joel Spolsky, the Law of Leaky Abstractions states that all non-trivial abstractions are, to some degree, leaky. See also Hyrum’s Law.

Law of the Second Floor

Built upon Dunbar’s Number, the law of the 2nd-floor states that no person two levels above or below you on an org chart really understands what you do for a living.

Least Power (Rule of)

A design principle that suggests choosing the least powerful [computer] language suitable for a given purpose.

Lindblom’s Razor

Never attribute to incompetence that which can be adequately explained by systemic issues. See also Hanlon’s Razor.

Lindy Effect, The

The Lindy effect proposes that the longer something, like a technology or an idea, has survived to exist or be used in the present, the longer life expectancy that thing will have. The concept is named after Lindy’s delicatessen in New York City. The Lindy effect has subsequently been theorized by mathematicians and statisticians, including Nassim Nicholas Taleb. This is also known as “Lindy’s Law”.

Linus’s Law

Given enough eyeballs, all bugs are shallow. Formulated by Eric S. Raymond in his essay and book The Cathedral and the Bazaar in honor of Linus Torvalds.

Lister’s Law

People under time pressure don’t think faster. Attributed to Timothy Lister.

Metcalfe’s Law

Originally attributed to Robert Metcalfe, Metcalfe’s Law states the effect of a network is proportional to the square of the number of connected users in the systems. While coined to describe the value in connecting compatibile communication devices in the era of the Ethernet, it has carried over and applied to describe users within a social media system.

Moore’s Law

The observation that the number of transistors in an integrated circuit, or CPU, doubles approximately every two years. Attributed to Gordon Moore, the co-founder of Fairchild Semiconductor and CEO and co-founder of Intel. See also Huang’s Law.

Murphy’s Law

Anything that can go wrong will go wrong. Named for Edward Murphy.

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. Yes, that is supposed to add up to 180%. The rule is attributed to Tom Cargill of Bell Labs and popularized by Jon Bentley.

Niven’s Third Law

It is easier to destroy than to create. Part of a series of laws named for science fiction author Larry Niven.

Occam’s Razor

A problem-solving principle that is paraphrased as “the simplest explanation is most likely the right one”. Attributed to English Franciscan friar William of Ockham.

Parkinson’s Law of Triviality

At any board meeting the amount of time devoted to an item on the agenda will be the inverse proportion to the issue’s difficulty. Said another way, “The time spent on any item of the agenda will be inverse proportion to the sum [of money] involved.” Named for C. Northcote Parkinson. See also Bike Shedding.

Peter Principle

Employees tend to rise to their level of incompetence. A management concept developed by Laurence J. Peter.

Postel’s Law

Named after Jon Postel from his work on TCP/IP, the Postel law says computer protocols should be strict in what is sent and forgiving in what they accept from others. Also known as the Robustness Principle.

Principle of Good Enough

Also known as the “good enough” principle. A rule in software and systems design that says consumers will use products that are good enough for their requirements, despite the availability of more advanced technology.

Rule 34

Rule 34 is an internet meme which states, “If it exists, there is porn of it. No exceptions.” Thought to have originated from a comic drawn by Peter Morley-Souter.

Singh’s Inevitable Avoidance

When organizations don’t know how to solve their problems, they will tweak their process to accommodate their dysfunctions. Spotted by Tim Ottinger and attributed to Asshok Singh.

Socratic Paradox

A saying, attributed to Greek philosopher Socrates, stating, “I know that I know nothing”. It is derived from Plato’s account but not one that Socrates ever recorded as saying.

Sturgeon’s Law

Ninety percent of anything is crap. Coined by Theodore Sturgeon, an American science fiction author and critic.

Sunnyvale Principle

There’s never time to do it right, but always time to do it over. Attributed to Jack Bergman.

Tesler’s Law

Every app has an inherent amount of irreducible complexity. The challenge is how to deal with it. On the surface, spending a development week to save a minute on a common task may seem unjustifiable. However, if there are a million users, the consumer is penalized for making the engineer’s job easier.

Universal Scaling Law

Neil Gunther extended Amdahl’s Law based on observations of performance measurements from many machines. He derived the Universal Scalability Law, which is a mathematical formula which determines relating relative capacity or the normalized throughput given an applied load.

Weiler’s Law

Weiler’s Law says that “nothing is impossible for the man that doesn’t have to build it himself.” It comes from the fictional book “Malice in Blunderland” by Thomas L. Martin

Wirth’s Law

Software is getting slower more rapidly than hardware becomes faster. Named after Niklaus Wirth who discussed it in his 1995 article, “A Plea for Lean Software”.

Yak Shaving

Refers to a task that leads you to perform another related task and so on, with each subsequent task leading one further from their original goal. This continues until, eventually, you find yourself shaving a yak. Coined by Carlin Vieri after viewing an episode of The Ren and Stimpy Show featuring “Yak Shaving Day”.

Zander’s Law

From the book The Art of Possibiity, Zander’s Law says “Don’t take yourself so goddamned seriously”.

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. Named for American computer programmer Jamie Zawinski.

Zeno’s Paradox

The belief in change actually occurring is a mistake, and that any motion forward is nothing but an illusion. Thought to be devised by Greek philosopher Zeno of Elea.

Zipf’s Law

Zipf’s Law refers to the fact that for many types of data studied in the physical and social sciences, the rank-frequency distribution is an inverse relation. It was named after the linguist George Kingsley Zipf. For example, the most frequent word in a language will occur about twice as often as the second most frequent word, three times as often as the third most frequent word, etc. Oddly, the same relationship occurs in many other rankings, unrelated to language, such as the population ranks of cities in various countries, corporation sizes, income rankings, etc