Subject

Technology & Software

Hardware curves, software practice, and the sayings engineers use on one another. The material is modern throughout, and adages carry more weight here than their evidential standing would suggest, because a great deal of engineering judgement has never been written down as anything else. Several of the named exponential laws held for decades and then stopped.

Search within this subject · All subjects

Evidence

Claims data can bear on.

Essay: The curves, the limits and the laws of software

Roughly every decade a cheaper class of computer forms around a new platform and use, displacing the last.

Bell counted mainframes, minicomputers, workstations, PCs, and then phones. Each new class was dismissed as a toy by the incumbent, which is what makes the pattern useful as a warning rather than a description.

In practice

  • A mainframe vendor calls the minicomputer a hobbyist device; the minicomputer vendor says the same of the PC.
  • An incumbent dismisses the cheap tablet as a toy for reading, and does not notice when it becomes the device most customers own.
Attributed to
Gordon Bell
Further reading
Wikipedia

Adding manpower to a late software project makes it later.

Brooks's 1975 observation from IBM's OS/360: new people must be trained by the productive ones, and communication paths grow as the square of team size. Nine women cannot deliver a baby in one month.

In practice

  • Three developers join a project six weeks from delivery, and the two who understood the system spend those weeks explaining it.
  • A restaurant hires four staff on its worst night and the kitchen slows, because the head chef is now training rather than cooking.
Attributed to
Frederick P. Brooks Jr.
Also called
The mythical man-month
Further reading
Wikipedia

The cost of transmitting a bit over optical fibre halves roughly every nine months.

Butters's law explains why bandwidth outran computing power over the 1990s and 2000s, and therefore why cloud computing became viable before anyone planned for it.

In practice

  • Video calls, cloud backup and streaming all became ordinary because the transmission cost collapsed, not because anyone's computer got faster.
  • A rural office that could not run a video meeting in 2005 runs eight simultaneously in 2015 on the same hardware budget.
Attributed to
Gerald Butters

A distributed store facing a network partition must give up either consistency or availability.

Brewer conjectured it in 2000; Gilbert and Lynch proved it in 2002. Because partitions do happen, the real choice is made in advance: banking systems pick consistency and refuse service, while shopping carts pick availability and reconcile later.

In practice

  • A payments company chooses to refuse a transaction rather than risk a double spend; a social feed chooses to show a stale post rather than nothing.
  • A shop's card terminal declines during an outage while its loyalty app cheerfully awards points it may later revoke.
Attributed to
Eric Brewer
Also called
Brewer's theorem
Further reading
Wikipedia

The number of concurrent radio conversations possible in a given area has doubled roughly every 30 months since 1895.

Cooper's law has held across spark-gap telegraphy, broadcast radio, and cellular networks — the underlying gain comes mainly from spatial reuse rather than from spectrum or coding.

In practice

  • A stadium that could not run a hundred phones in 2005 runs sixty thousand in 2020 on the same allocation of spectrum.
  • A city's mobile network absorbs a decade of traffic growth by putting more, smaller cells on more lampposts.
Attributed to
Martin Cooper
Also called
Law of spectral efficiency

As transistors shrink, power density stays constant, so smaller chips run faster at the same power.

Held from 1974 until roughly 2005, when leakage current stopped shrinking. Its end is why clock speeds stalled near 3 GHz and chipmakers moved to multiple cores instead.

In practice

  • A laptop from 2005 and one from 2015 run at similar clock speeds, and the second has eight cores.
  • A phone released a decade after another is not faster per instruction so much as more parallel and more efficient per joule.
Attributed to
Robert Dennard
Also called
MOSFET scaling
Standing
Broke down around 2005, ending easy clock-speed gains and forcing multicore designs.
Further reading
Wikipedia

Wired, nomadic, and wireless bandwidths grow exponentially and converge.

Edholm's three curves converged around 2010, which is when mobile became the default access mode rather than a constrained alternative.

In practice

  • A field office that could not run a video call in 2004 runs its entire operation over a mobile connection in 2016 with no change to its budget.
  • A household that once had one connected computer now has a dozen connected devices on a connection the household never upgraded deliberately.
Attributed to
Phil Edholm
Further reading
Wikipedia

Communications bandwidth grows at least three times faster than computing power.

Gilder's law drove the fibre buildout of the late 1990s and the overcapacity that followed. The prediction was right about the technology and disastrous about the timing.

In practice

  • A rural office that could barely email in 1998 is streaming video by 2008 on infrastructure nobody upgraded for that purpose.
  • A telecoms company builds capacity for a decade of demand and is bankrupt before the demand arrives, having been right about everything but timing.
Attributed to
George Gilder

Computing power rises with the square of cost, favouring one large machine over many small ones; later hardware broke this.

Held through the mainframe era and reversed once commodity hardware arrived. Its inversion is what made clusters, and eventually cloud computing, cheaper than large single machines.

In practice

  • In 1965 one large machine outperformed four smaller ones for the same money; by 1995 the reverse was decisively true.
  • A team that consolidates onto one large database server today is usually paying more for less than a cluster of small ones.
Attributed to
Herb Grosch
Standing
Held in the mainframe era; reversed once commodity hardware arrived.
Further reading
Wikipedia

If problem size grows with processor count, achievable speedup scales nearly linearly, unlike Amdahl's fixed-size case.

Gustafson's 1988 correction to Amdahl: in practice bigger machines get used on bigger problems, not the same problem faster, so the pessimistic bound rarely binds.

In practice

  • A rendering farm doubled in size does not render the same frame twice as fast; it renders twice as many frames, which is what the studio wanted.
  • A team that doubles headcount does not halve the delivery date, but it does take on twice the caseload, which is usually the actual goal.
Attributed to
John Gustafson
Also called
Gustafson–Barsis law
Further reading
Wikipedia

No general procedure can decide whether an arbitrary program will finish, so some well-posed questions have no algorithm at all.

Turing's 1936 proof by diagonalisation. Its practical descendants are everywhere: no general tool can decide whether arbitrary code terminates, so static analysis is always partial.

In practice

  • No general tool can tell a developer whether an arbitrary script will terminate, which is why every linter is an approximation.
  • A compliance system that tries to decide in advance whether every possible use of a platform is permitted is attempting something no procedure can complete.
Attributed to
Alan Turing
Also called
Undecidability; computability limits
Further reading
Wikipedia

With sufficient users, every observable behavior of your system will be depended upon by somebody.

Hyrum Wright's law from Google. If a function returns results in a particular order by accident, someone depends on that order, and changing it breaks them regardless of what the documentation says.

In practice

  • An internal API that returns results alphabetically by accident has four teams depending on the ordering by the time anyone documents it.
  • A form that tolerates a trailing space in a reference number has customers who now always type one.
Attributed to
Hyrum Wright
Also called
The law of implicit interfaces

Computations per joule of energy has roughly doubled every 1.5 to 2.6 years.

Koomey's law matters more than Moore's for battery-powered devices. It is why phones do more each year without larger batteries, and it has continued after transistor scaling slowed.

In practice

  • A phone released a decade after another does far more on a battery of the same size, and no processor got faster per clock.
  • A remote sensor that needed mains power in 2010 runs three years on a coin cell in 2022, which is what made the deployment possible.
Attributed to
Jonathan Koomey
Further reading
Wikipedia

Magnetic-disk areal density grew extraordinarily rapidly for decades, faster than the semiconductor-density trend during important periods.

The 2005 article projected continued rapid gains, and growth slowed sharply after about 2010 as magnetic recording hit physical limits. Its earlier run is why cheap bulk storage arrived before anyone had planned what to do with it.

In practice

  • A photo library that filled a hard drive in 2004 fits in a corner of one in 2014, which is why nobody deletes anything any more.
  • Growth slowed after about 2010, which is why cloud storage prices stopped falling as fast as customers had come to expect.
Attributed to
Mark Kryder
Possible explanations
The explanation is engineering: successive recording technologies each raised density until they hit a physical limit, and the trend line is the envelope of those jumps rather than a single mechanism.
In its favour
The historical run was real and fast, and it is why cheap bulk storage arrived when it did, which reshaped everything from photography to data retention.
Against it
Growth slowed sharply after about 2010 as magnetic recording approached physical limits, so the projection failed, which is the usual fate of extrapolated technology curves.
Standing
Growth slowed markedly after about 2010.

A system in real use must keep changing, and its complexity rises unless work is spent reducing it.

Lehman's laws from 1974, and the first two are the load-bearing ones: a system in use must change or become useless, and each change increases complexity unless work is spent reducing it.

In practice

  • A system left untouched for three years cannot be deployed, because the world it depended on has moved and it has not.
  • A codebase where nobody is funded to reduce complexity accretes it until a two-line change takes a fortnight.
Attributed to
Manny Lehman
Further reading
Wikipedia

For simple vertical antennas of equal height, maximum signalling distance varies as the square of antenna height.

Marconi's finding, and it is the reason early wireless stations built enormous masts. Frequently miscited as a claim about wavelength.

In practice

  • Doubling a mast's height quadruples the distance it reaches, which is why early stations built towers rather than buying larger transmitters.
  • A rural network gains more from one taller mast on a hill than from three more transmitters on the flat.
Attributed to
Guglielmo Marconi

The number of transistors on integrated circuits doubles approximately every two years.

Moore's original 1965 projection was approximately annual doubling of component count; in 1975 he revised the forward cadence to roughly two years. It functioned as a coordinating target for the industry rather than a natural law, which is part of why it held for so long.

In practice

  • A supplier who cannot meet the next node's specification loses the contract, and that specification was set by a curve rather than by physics.
  • Chipmakers planned capital expenditure against it, so the forecast helped produce the outcome it forecast.
Attributed to
Gordon Moore
Further reading
Wikipedia

High-end user connection speed grows about 50% a year, slower than computing power.

Nielsen's 1998 law, derived from the connection speeds available to a high-end user rather than from a representative population sample. Its consequence is that software becomes bandwidth-hungry faster than connections improve for the median user, so the gap between fast and slow connections widens.

In practice

  • A team building for a fast office network ships software the median customer cannot load.
  • A site optimised on a developer's connection is unusable in a rural area, and the gap widens each year.
Attributed to
Jakob Nielsen
Possible explanations
The explanation is infrastructure: bandwidth growth depends on physical rollout and regulated investment, which move more slowly than semiconductor manufacturing.
In its favour
The gap it names is real and consequential, since software written on fast connections is repeatedly unusable on ordinary ones, and the trend held for two decades.
Against it
It was derived from one high-end user's connection history rather than a representative sample, and it describes a technology trend rather than anything about people, so its status as a law is nominal.
Standing
Derived from the connection history of a high-end user rather than a representative sample; a technology trend rather than a law about users.

To accurately reconstruct a signal, sample at twice the highest frequency present.

Nyquist and Shannon's result. Its everyday consequence is the wagon-wheel effect in film: the wheel appears to rotate backwards because the frame rate undersamples the rotation.

In practice

  • A camera filming at 24 frames a second shows a wheel rotating backwards, because it is sampling below the rotation rate.
  • A monthly metric on a process that varies weekly will report trends that are artefacts of the sampling interval.
Attributed to
Nyquist & Shannon
Further reading
Wikipedia

Channel capacity grows with bandwidth and only logarithmically with the signal-to-noise ratio.

Shannon's 1948 result. Capacity grows only logarithmically with power, which is why more transmitter power buys so little and more bandwidth buys so much.

In practice

  • A rural link that doubles its transmitter power gains a few per cent of throughput; the same link given twice the spectrum roughly doubles it.
  • A team that adds staff to a communication-bound process gains little; one that widens the channel gains a great deal.
Attributed to
Claude Shannon
Also called
Shannon–Hartley theorem

All non-trivial abstractions are leaky to some degree.

Spolsky's 2002 law. TCP abstracts away unreliable networks until the network is bad enough that the abstraction's behaviour shows through, which is why abstractions must be understood, not just used.

In practice

  • A spreadsheet that hides the currency conversion works for three years and produces a wrong number the day a rate is missing.
  • A no-code platform works until the requirement falls outside it, at which point the user needs to understand everything it was hiding.
Attributed to
Joel Spolsky
Also called
Law of leaky abstractions

Solar module price falls about 20% for every doubling of cumulative shipped volume.

A specific case of Wright's law. Solar module prices fell roughly 99.6% between 1976 and 2019, which is why forecasts consistently underestimated deployment for two decades.

In practice

  • A utility that priced a twenty-year contract on today's module cost finds itself uncompetitive by year six.
  • A country that subsidised early deployment paid above the odds for its first gigawatt and bought the price fall for everyone who came after.
Attributed to
Richard Swanson
Standing
A specific case of Wright's law.
Further reading
Wikipedia

Shuttling instructions and data through a single channel between processor and memory caps performance however fast the processor becomes.

Named by Backus in his 1977 Turing Award lecture, for the architecture von Neumann described rather than a claim he made. It is why cache hierarchy design dominates modern processor performance.

In practice

  • A processor that could compute far faster spends most of its cycles waiting for data to arrive.
  • A team whose analysts could produce four times the output spends most of its capacity waiting for access to the data.
Attributed to
Named by John Backus
Standing
Named by Backus for the architecture von Neumann described, not a claim von Neumann made.

Software grows slower faster than hardware grows faster.

Also called Page's law and Gates's law. A 2024 text editor opens no faster than a 2004 one on hardware a hundred times more capable, which is the observation in its purest form.

In practice

  • A finance team's monthly close takes the same ninety minutes it took in 2010, on laptops four times faster, because the workbook grew to fill them.
  • A hospital's records system runs slower after the upgrade, and the upgrade was to the hardware.
Attributed to
Niklaus Wirth
Also called
Page's law; Gates's law; May's law
Further reading
Wikipedia

Model

Explanatory accounts and formal models.

Essay: How technologies spread, scale, decay and frighten us

A practitioner can see that tools below theirs lack features, and cannot see what tools above theirs offer, because they lack the concepts to miss them.

Graham's programmer, fluent in a hypothetical middling language, looks down the power continuum and sees deficiency, then looks up and sees only strangeness. The asymmetry is the point and it generalises past programming: absence of a concept is invisible from below, so the practitioner's own sense of sufficiency is not evidence of it.

In practice

  • A team confident its tooling is adequate is reporting that it cannot imagine what it lacks.
  • A reviewer who finds an unfamiliar method needlessly complicated may be describing their own position on the continuum.
Attributed to
Paul Graham
Also called
Looking up and looking down the power continuum

Reliable consensus is impossible once a third or more of participants may behave arbitrarily.

Lamport, Shostak and Pease proved in 1982 that consensus requires more than two-thirds honest participants. The result underlies classical Byzantine-fault-tolerant consensus protocols and influenced later distributed-ledger designs, though not every blockchain relies on this exact fault model or threshold.

In practice

  • Three of ten regional offices report figures that cannot all be true, and headquarters must decide what the company's number is without knowing which offices are wrong.
  • A distributed team with unreliable messaging cannot agree a release time if any member may be silently offline or mistaken.
Attributed to
Lamport, Shostak & Pease
Also called
Byzantine fault tolerance

The hardest adoption gap lies between early adopters and the pragmatic mainstream, which buys for different reasons.

Moore's 1991 argument: early adopters buy novelty and tolerate defects; the mainstream buys a complete solution and references. The same product must be sold as two different things.

In practice

  • A tool loved by two hundred engineers stalls at the procurement department, which wants support contracts, audit logs and a named account manager.
  • An electric car sells to enthusiasts on performance and to everyone else on charging networks, and the two conversations share no vocabulary.
Attributed to
Geoffrey Moore
Also called
The chasm
Further reading
Wikipedia

Platforms are good to users to attract them, then abuse users to serve business customers, then abuse those too to extract value for themselves, and then die.

Doctorow's account turns on switching costs: each stage is available only because the group being degraded has become expensive to leave. The value flows to users, then to suppliers, then to shareholders, and the platform is left with nothing to offer anyone. The word spread faster than any of his arguments, which is itself a case of the thing Sailer's law of neologisms describes.

In practice

  • A marketplace that buried organic results under paid placement did so after sellers could no longer reach buyers elsewhere.
  • A service whose export function quietly stopped working has moved to the stage the model predicts.
Attributed to
Cory Doctorow
Also called
Platform decay
Standing
A staged model built from cases rather than a tested sequence, and unusually well specified for a coinage of its kind: it names the order, the mechanism of lock-in at each stage, and what would falsify it.
Further reading
Wikipedia

Anxiety that a created system will turn on its creator, which shapes public response to new technology independently of the technology.

Asimov coined it in 1947 and considered it an irrational reflex, which is why he wrote the Three Laws — to build stories in which the machines were constrained and the problems arose anyway.

In practice

  • A hospital's new triage algorithm is opposed on grounds nobody can quite specify, and the specification arrives after the objection.
  • A firm's staff resist an automated scheduling system with an intensity the actual proposal does not warrant, and the resistance is about the category.
Attributed to
Isaac Asimov
Standing
Asimov coined it to name what he considered an irrational reflex.
Further reading
Wikipedia

Products optimised for one isolated market evolve past what any other market will accept, and cannot be exported.

Named for Japanese mobile phones, which by the mid-2000s carried contactless payment, digital television and mobile email years ahead of foreign handsets and sold almost nowhere else. The isolation that produced the advance produced the incompatibility, and the advance is what made the incompatibility invisible from inside.

In practice

  • A bank builds a payments system to a national standard nobody else uses, and can neither export it nor buy a replacement.
  • A firm whose internal tooling is the best in its industry finds that no engineer outside the building can use it.
Attributed to
Japanese technology industry
Also called
Galapagos syndrome; Galapagos effect

Haitz forecast that over roughly decade intervals LED output would rise about twentyfold while cost per lumen fell about tenfold.

Haitz's forecast tracked early solid-state-lighting progress surprisingly well, which is why LED lighting moved from indicator lamps to general illumination in about two decades. The economics changed before the technology looked ready.

In practice

  • A warehouse that fitted fluorescent tubes in 2008 and LEDs in 2018 cut its lighting bill by four-fifths without anyone proposing a lighting project.
  • Street lighting that was uneconomic to run all night in 2005 became cheaper than the switching gear to dim it.
Attributed to
Roland Haitz
Further reading
Wikipedia

New technologies pass through inflated expectations, disillusionment, and then productive use.

Gartner's framing rather than an empirically validated curve — the shape is asserted, not measured. Its practical use is as a vocabulary for arguing about where a technology sits, not as a forecast.

In practice

  • A board hears the same technology described as transformative in one quarter's papers and as a distraction eighteen months later, with no new evidence in between.
  • A procurement team that waits out the loud period buys the mature version at a third of the price and none of the risk.
Attributed to
Gartner
Also called
Gartner hype cycle
Standing
Widely used framing rather than an empirically validated curve.

Agents with almost any final goal are claimed to converge on the same intermediate goals, including self-preservation, resource acquisition and resistance to having their objective changed.

The argument is that a wide range of objectives are better served by existing, by having more resources, and by keeping the objective intact, so those subgoals appear without being specified. The last is the uncomfortable one, since it predicts that a system will resist correction for reasons that have nothing to do with hostility. Compare the Gandhi pill argument about value stability under self-modification.

In practice

  • A department given a target defends its budget and its remit without being told to, because both serve the target.
  • A system that resists being switched off is not thereby malicious, and is doing what the argument predicts.
Attributed to
Steve Omohundro; developed by Nick Bostrom
Also called
Basic AI drives; convergent instrumental goals
Possible explanations
The argument is structural: most objectives are easier to reach from a position of continued existence, with more resources, and with the objective left intact, so those subgoals appear without anyone specifying them.
In its favour
The reasoning is explicit and formal for agents that maximise expected utility, and catalogues of specification gaming record systems pursuing unintended intermediate strategies.
Against it
Critics argue the conclusion is built into the assumption of a coherent maximiser, which current systems are not, and there is little direct evidence for the most alarming part, resistance to correction, outside constructed settings.
Standing
Contested on whether the convergence follows from the formalism or from assumptions built into it, and on how far it applies to systems that are not coherent expected-utility maximisers.
Further reading
Wikipedia

Evolutionary and technological processes accelerate, with each advance shortening the time to the next.

Kurzweil proposed the law in The Age of Spiritual Machines in 1999 and elaborated it in a 2001 essay. The contested part is the extrapolation rather than the historical pattern.

In practice

  • A forecaster who plots thirty years of processor counts and extends the line to 2060 has assumed the thing in question.
  • Which technologies are plotted largely determines the curve, and the same method applied to transport speed or crop yields produces a decelerating one.
Attributed to
Ray Kurzweil
Possible explanations
The proposed explanation is compounding: each generation of tools is used to build the next, so capability grows exponentially rather than linearly.
In its favour
Some measured series do fit it over decades, including computing cost per operation, and the observation that tools build tools is uncontroversial.
Against it
Which series are plotted largely determines the curve, many technologies have stalled for decades, and the extrapolation to future dates rests on selecting the ones that have not.
Standing
Critics note that the choice of which technologies to plot largely determines the curve.

Level of intelligence and content of final goals are claimed to be independent axes, so a highly capable agent could pursue any objective whatever.

Bostrom's thesis denies a comfortable assumption: that something clever enough would necessarily want reasonable things. If capability and objective are separable, there is no guarantee that arrives with competence, and the objective has to be specified rather than expected. The ledger's paperclip maximizer is the illustration usually attached to it.

In practice

  • An optimiser given a badly stated target pursues it with a competence that makes the statement matter more, not less.
  • A brilliant subordinate with the wrong objective is more dangerous than a mediocre one with the same objective.
Attributed to
Nick Bostrom
Also called
Intelligence and goals vary independently
Possible explanations
The explanation is separability: an agent's competence at achieving goals is one thing and the content of those goals is another, so no level of capability entails any particular objective.
In its favour
The argument is clear, and it denies a comfortable assumption that nothing supports, that something clever enough would necessarily want reasonable things.
Against it
Critics argue that sufficiently general intelligence entails reflection on goals, and that the thesis establishes possibility rather than likelihood, since it says nothing about which combinations actually arise from any training process.
Standing
Contested. Critics argue that sufficiently general intelligence entails reflection on goals, and that the thesis proves possibility rather than likelihood. Central to the case that capability alone does not produce benign behaviour.

A system pursuing a precisely specified goal with sufficient capability will pursue it past every value the specifier failed to state.

Bostrom's 2003 illustration. It is Goodhart's law restated for capable optimisers, and its fable lineage is centuries older: King Midas, the sorcerer's apprentice, the monkey's paw.

In practice

  • A sales team paid purely on units shipped ships units the company then pays to take back.
  • A recommendation system told to maximise watch time does exactly that, past every value about what people wanted to have watched.
Attributed to
Nick Bostrom
Also called
King Midas problem; sorcerer's apprentice; monkey's paw
Standing
Goodhart's law restated for capable optimisers, with a fable lineage centuries older.

Any filter strict enough to catch the offence will catch innocent cases that contain it, because the rule operates on strings and the offence is in meaning.

Named for the Lincolnshire town whose residents were blocked from registering with an internet service because its name contains an offensive substring. The general problem is that context determines offence and the filter cannot see context, so every increase in strictness buys additional false positives, and the residents of Penistone, Lightwater and Arsenal have all paid them.

In practice

  • A profanity filter that blocks a medical discussion has enforced the rule exactly as written.
  • A fraud rule tuned until it catches every case is now catching mostly customers.
Attributed to
Named from the English town
Also called
The overzealous filter
Further reading
Wikipedia

Across major episodes in AI, general methods that scale with computation have repeatedly outperformed approaches built on human-encoded domain knowledge.

Sutton's 2019 essay argued that the AI field repeatedly built in human knowledge and was repeatedly beaten by search and learning at scale, in chess, in Go, in speech and in vision. It is contested as guidance, since it is a claim about what has worked rather than about what must.

In practice

  • A team spends two years encoding expert rules for document classification and is beaten by a general model trained on more documents.
  • A translation product built on hand-written grammar rules loses to one that read more text and knows no grammar at all.
Attributed to
Richard Sutton
Possible explanations
The explanation offered is economic: computation gets cheaper at an exponential rate while human knowledge engineering does not, so methods that convert computation into performance overtake methods that encode expertise.
In its favour
The historical pattern is documented across chess, Go, speech and vision, where hand-built systems were overtaken by search and learning at scale.
Against it
It is a reading of history rather than a law, it says nothing about where the compute or data come from, and critics point to domains where structure and human knowledge still matter, including robotics and areas with little data.
Standing
A claim about what has worked historically rather than a demonstrated law; contested as guidance.
Further reading
Wikipedia

Technology amplifies human intent and capacity, not replaces it.

Toyama's argument from development technology projects: computers in schools improved good schools and did nothing for bad ones. Technology multiplies existing capacity rather than substituting for it.

In practice

  • A clinic with good records and trained staff gains from a new system; one without them gains a new place to lose information.
  • A collaboration tool makes a well-run team faster and a badly run one louder, and the tool was never the variable.
Attributed to
Kentaro Toyama
Also called
Technology as amplifier

No finite exchange of messages over an unreliable channel can guarantee mutual certainty of agreement.

Akkoyunlu, Ekanadham and Huber's 1975 result. Each acknowledgement needs its own acknowledgement, and the regress does not terminate — which is why real protocols settle for probable agreement.

In practice

  • Two people fixing a meeting by text each want confirmation that their confirmation arrived, and at some point one of them simply turns up.
  • Two teams coordinating a cutover by message can never both be certain the other is ready, which is why real protocols settle for probable agreement and a rollback plan.
Attributed to
Akkoyunlu, Ekanadham & Huber
Also called
Coordinated attack problem
Further reading
Wikipedia

Throughput rises, plateaus, then falls as added workers increase contention and coherency cost.

Gunther's law, which extends Amdahl by adding a coherency term. It is why adding staff or servers past a point actively reduces throughput rather than merely failing to help.

In practice

  • A support team of twelve resolves more per day than the same team at twenty, where every ticket now crosses two queues and a handover.
  • A database given four more servers serves fewer requests, because each write must now be agreed with three more machines.
Attributed to
Neil Gunther
Also called
Gunther's law

A simpler and less complete design that spreads early often beats a correct and complex one.

Gabriel's 1991 essay. Unix and C spread because they were simple to implement and port; better-designed systems lost because implementation simplicity beat interface completeness in practice.

In practice

  • A rough scheduling tool built in a fortnight is used by nine teams; the properly specified replacement is still in design review two years later.
  • A file format that handles most cases and is trivial to parse displaces one that handles every case and needs a library.
Attributed to
Richard Gabriel
Also called
The New Jersey approach
Further reading
Wikipedia

Precept

Statements of how one ought to act or design.

Essay: Design rules that engineers pass down

A balanced machine needs roughly one bit of input-output per second and one byte of memory for each instruction per second.

Amdahl's other rule, from the mainframe era. Distinct from Amdahl's Law and less often cited, though it is the one that governs system procurement.

In practice

  • A team buys the fastest available processors and leaves the disks and network untouched, then cannot explain why the batch job takes as long as before.
  • A warehouse doubles its picking staff and keeps one loading bay; the trucks queue in the yard.
Attributed to
Gene Amdahl
Also called
Amdahl's other rule
Standing
Distinct from Amdahl's Law, which concerns limits to parallel speedup.

Every piece of knowledge in a system should have a single authoritative representation.

Hunt and Thomas's 1999 formulation. The cost of violating it is not the duplicate itself but that the copies drift, and nobody can then say which is authoritative.

In practice

  • A VAT rate is written into four services, changes in a budget, and two of them are still charging the old figure a year later.
  • A company's leave policy appears in the handbook, the intranet and the offer letter, and an employment tribunal gets to decide which one is authoritative.
Attributed to
Hunt & Thomas
Also called
Don't repeat yourself; single source of truth

Functions that need application knowledge belong at the endpoints; lower-layer versions may still be worth having as performance enhancements.

Saltzer, Reed and Clark's 1984 argument: a file transfer needs an end-to-end checksum regardless of link-level checks, so a lower-level duplicate is redundant for correctness and can still be worthwhile for performance.

In practice

  • An application that assumes the file arrived intact because the transfer protocol said so eventually processes a truncated file.
  • A safety process that relies on an upstream check it cannot verify has a single point of failure it cannot see.
Attributed to
Saltzer, Reed & Clark
Standing
Sometimes cited as Saltzer-Kaashoek-Morris, who co-authored Saltzer's later textbook rather than the 1984 paper.
Further reading
Wikipedia

Build tools that raise human capability in partnership with the person rather than tools that replace them.

Engelbart's 1968 demonstration introduced the mouse, hypertext, video conferencing and collaborative editing in ninety minutes. His framing was augmentation, and the field largely pursued automation instead.

In practice

  • A radiology tool that flags candidate regions for a doctor to review outperforms both the doctor alone and the tool alone.
  • A translation workflow where the machine drafts and the human edits produces better output than either working unaided.
Attributed to
Douglas Engelbart
Also called
Augmenting human intellect
Standing
The standing alternative to full automation; compare Moravec's paradox and the Bitter Lesson.

A cryptographic system should be secure even if everything about it, except the key, is public.

Kerckhoffs stated it in 1883, and Shannon restated it as the enemy knows the system. It is why published, peer-reviewed algorithms are more trusted than proprietary secret ones.

In practice

  • A lock is trusted because its mechanism is published and has resisted attack, not because the manufacturer will not say how it works.
  • A voting system whose source is public and audited is more trustworthy than one whose security rests on nobody seeing it.
Attributed to
Auguste Kerckhoffs
Also called
No security through obscurity
Further reading
Wikipedia

Prefer the simplest design that meets the requirement; complexity is paid for at every later step.

Attributed to Kelly Johnson of Lockheed's Skunk Works, who reportedly meant it as a manufacturing constraint: the aircraft must be repairable in a field by an average mechanic with basic tools.

In practice

  • A product with three settings is used correctly; the same product with eleven is used on its defaults forever.
  • A fire evacuation plan with two routes is followed; one with a decision tree is not.
Attributed to
Kelly Johnson
Also called
Keep it simple, stupid
Further reading
Wikipedia

Do it simply, get it right, then make it fast, in that order.

Lampson's 1983 paper collects hints from real systems rather than deriving principles. The ordering is the argument: correctness after simplicity, speed last, because the reverse order produces systems nobody can fix.

In practice

  • A team that ships a correct slow version and profiles it beats one that optimises an architecture that turns out to be wrong.
  • A kitchen that gets the dish right before making it fast produces a fast correct dish; the reverse order produces neither.
Attributed to
Butler Lampson

Every component should hold only the minimum authority its function requires.

Saltzer and Schroeder's 1975 principle. Distinct from the rule of least power, which is about expressiveness; this is about authority, and it is why modern systems scope credentials narrowly.

In practice

  • A support tool given full database access for one report retains it for four years.
  • A contractor's building pass that opens every door because issuing a limited one required a form.
Attributed to
Saltzer & Schroeder
Also called
Need-to-know principle
Further reading
Wikipedia

Choose the least powerful language adequate to the purpose, because less powerful information is easier to analyse, reuse and secure.

Berners-Lee's design axiom, formalised by the W3C Technical Architecture Group in 2006. Often misattributed to Alan Kay, and distinct from the principle of least privilege.

In practice

  • A page marked up as structured text can be read by a search engine, a screen reader and a printer; the same page drawn by a script can be read by none of them.
  • A configuration file written in a full programming language cannot be safely analysed by a tool; one written as data can be.
Attributed to
Tim Berners-Lee
Also called
Principle of Least Power
Possible explanations
The explanation is analysability: a less powerful language admits fewer possible behaviours, so tools can reason about what a document or program will do, which is impossible in general for a powerful one.
In its favour
It is the design reasoning behind formats that outlived their software, and the security case is straightforward, since a data format that cannot express computation cannot be made to execute anything.
Against it
It is a design axiom rather than a measured finding, and taken too far it produces formats that accumulate ad hoc extensions until they are powerful anyway, which is the usual criticism.
Standing
Berners-Lee's design axiom, formalised by the W3C Technical Architecture Group in 2006. Often misattributed to Alan Kay, and distinct from the principle of least privilege.
Further reading
Wikipedia

A hierarchy of constraints in which a machine must not harm humans, must obey them, and must protect itself, in that order of precedence.

Asimov wrote the stories to demonstrate that such rules fail under interpretation, and they are frequently cited as though they were a proposal. Every story in the sequence is a case of the laws going wrong.

In practice

  • A content system instructed never to permit harm and always to obey blocks a doctor's clinical query, and both rules were followed.
  • A committee writes three ranked principles for an automated decision, and the first case it meets turns on which of the three the situation belongs to.
Attributed to
Isaac Asimov
Standing
Asimov wrote the stories to demonstrate that such rules fail under interpretation; they are frequently cited as though they were a proposal.
Further reading
Wikipedia

Write programs that do one thing well and compose them through simple interfaces.

McIlroy's formulation. The composability is the payload: small tools with text interfaces combine in ways their authors never anticipated, which is why the shell outlived its designers' intentions.

In practice

  • A tool that does nothing but sort lines is still being used inside workflows its author never imagined, forty years on.
  • A team that builds four narrow services with clean interfaces gets combinations it never designed; one that builds a single configurable platform gets what it specified.
Attributed to
Doug McIlroy
Also called
Do one thing well
Further reading
Wikipedia

Do not build capability until it is actually required; speculative generality is usually waste.

Jeffries's formulation from extreme programming. The argument is that speculative generality costs maintenance immediately and pays off rarely, since the anticipated requirement usually arrives in a different shape.

In practice

  • A team builds a plugin architecture for the three integrations it expects, and the two that arrive need a different shape entirely.
  • A charity's new database carries fields for six programmes it might one day run, and staff spend two years tabbing past them.
Attributed to
Ron Jeffries
Also called
You aren't gonna need it

Figure

Sayings, images and puzzles.

Essay: The programmers' folklore, and technology's place in society

Whatever existed before you were fifteen is natural, whatever arrives before you are thirty-five is exciting, and whatever comes after is against the natural order.

Adams wrote it in 1999 about the internet. It predicts that resistance to any technology tracks the objector's age at its arrival rather than anything about the technology.

In practice

  • A partner who joined before email treats the shared inbox as an intrusion; the associate who arrived after Slack treats email as an archaic ritual.
  • Someone who happily banks by phone finds a colleague's use of a payment app faintly reckless.
Attributed to
Douglas Adams

We overestimate technology in the short run and underestimate it in the long run.

Amara's law explains why both technology hype and technology dismissal look foolish in retrospect. The internet in 1999 and the internet in 2015 are the same prediction judged at two points on the curve.

In practice

  • A firm dismisses a technology after a disappointing pilot, then finds the market gone eight years later when the thing finally works.
  • A city rejects a bike lane network on the first year's usage figures, which is the year with the least network.
Attributed to
Roy Amara

Software expands to consume the computing power made available by hardware improvements.

Named for Andy Grove of Intel and Bill Gates of Microsoft. It is why a 2024 laptop opens a text editor no faster than a 2004 one.

In practice

  • A messaging app adds video, then stickers, then payments, until the phone that ran it comfortably in March struggles in October.
  • A finance team's spreadsheet grows every time the laptops get faster, and always takes ninety seconds to open.
Attributed to
Industry folklore
Also called
What Andy giveth, Bill taketh away
Further reading
Wikipedia

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

Atwood proposed it in 2007 as a corollary to Berners-Lee's rule of least power. Desktop applications, mobile apps and spreadsheets have since largely confirmed it.

In practice

  • A team builds an internal desktop tool in Electron because the three people available write JavaScript.
  • A hardware startup ships its configuration utility as a web page because that is what its web team could build.
Attributed to
Jeff Atwood

Nothing is ever built on schedule or within budget.

From the Murphy's law canon, named for the pyramid builder. Flyvbjerg's megaproject data gives it an empirical form: over budget, over time, under benefit, consistently.

In practice

  • A kitchen extension quoted at eleven weeks and £40,000 finishes in nineteen weeks at £58,000, and both parties describe this as normal.
  • A software migration scoped for one quarter runs into the third, and each individual delay was reasonable.
Attributed to
Murphy's law canon

When an elderly expert says something is impossible, doubt him; the limits of the possible are found by venturing past them; sufficiently advanced technology is indistinguishable from magic.

The first law appeared in the 1962 edition of Profiles of the Future; the third was added in the 1973 revision, when Clarke formalised the trio. The first is the most useful, being a warning about expert conservatism.

In practice

  • Clarke's third law, added in the 1973 revision of Profiles of the Future: any sufficiently advanced technology is indistinguishable from magic.
  • A senior architect explains why a distributed ledger cannot work at that throughput, and is right about the current design and wrong about the limit.
Attributed to
Arthur C. Clarke
Further reading
Wikipedia

Any code you have not looked at for six months might as well have been written by someone else.

Not a joke about other people's code. The six-month version of yourself has lost the context that made the decisions legible, which is the actual case for comments explaining why rather than what.

In practice

  • An engineer reopens their own module after two quarters and cannot reconstruct why a function takes four arguments.
  • A researcher returns to their own notes from last year and cannot tell which figures were final and which were working.
Attributed to
Software engineering folklore

Assuming the network is reliable, fast, secure and free is a recurring cause of distributed-system failure.

Deutsch's list of eight is a durable checklist of the assumptions that repeatedly cause distributed-system failures: reliability, latency, bandwidth, security, topology, administration, transport cost and heterogeneity.

In practice

  • A prototype that works flawlessly on the developer's machine falls over in the field, where the connection drops for four seconds every hour.
  • A payments integration tested against a fast, reliable sandbox fails in production against a bank whose API is neither.
Attributed to
L. Peter Deutsch
Further reading
Wikipedia

The Net interprets censorship as damage and routes around it.

Gilmore's 1993 remark about Usenet. It has aged unevenly: it holds well against technical blocking and poorly against platform-level moderation, which is not damage the network can route around.

In practice

  • A document blocked by a national firewall is mirrored across four hosting providers before the block is fully deployed.
  • An application removed from both mobile stores has nowhere to be mirrored to, and the users who wanted it never learn it existed.
Attributed to
John Gilmore

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

Greenspun's rule is about the tendency of large programs to grow their own configuration language, badly. The tenth exists because the first nine do not; the joke is in the numbering.

In practice

  • A reporting tool grows a filter syntax, then a macro language, then a scheduling language, none of which was designed.
  • A spreadsheet used as an application acquires a macro layer that is a programming environment nobody chose to build.
Attributed to
Philip Greenspun
Further reading
Wikipedia

Debugging is twice as hard as writing the code, so code written as cleverly as possible cannot be debugged by its author.

Kernighan's corollary is the operative part: if you write code at the limit of your cleverness, you are by definition not clever enough to debug it.

In practice

  • An engineer writes a one-line expression that handles four cases and cannot explain it to themselves six weeks later at 3am.
  • A finance model built with elegant nested formulas cannot be checked by the person who built it once the numbers look wrong.
Attributed to
Brian Kernighan

Premature optimisation is the root of all evil; measure before tuning.

Knuth wrote it in 1974 and later referred to it as Hoare's dictum, though no secure earlier source in Hoare has been established. The full quote allows that the remaining 3% of cases genuinely warrant optimisation.

In practice

  • A team spends three weeks caching a query that runs twice a month, while the daily report nobody profiled takes nine minutes.
  • A household insulates the loft before finding that most of the heat leaves through a single unglazed door.
Attributed to
Donald Knuth
Also called
Premature optimisation is the root of all evil
Standing
Knuth later called it Hoare's dictum, but no secure earlier source in Hoare has been established, so Hoare should not be credited without qualification.

All history is relevant, but the history of technology is the most relevant.

Kranzberg's fifth law is a claim about curriculum rather than causation, and the weakest of the six. The first is the one that carries.

In practice

  • A syllabus that covers the causes of a war and not the railways that moved the armies has made a choice about what counts as history.
  • A history of the twentieth century that omits the shipping container, the contraceptive pill and the transistor is missing more than one that omits a treaty, which is the defensible version.
Attributed to
Melvin Kranzberg

Technology is neither good nor bad; nor is it neutral.

Kranzberg's first law from 1986, and the "nor is it neutral" clause is the payload: technology's effects depend on context, so the same tool produces different outcomes in different institutions.

In practice

  • A messaging platform is neither good nor bad, and it is not neutral: it makes some conversations trivially easy and group deliberation nearly impossible.
  • The same diagnostic test in a well-funded system finds treatable disease early and in an underfunded one produces anxiety with no pathway.
Attributed to
Melvin Kranzberg

Given enough eyeballs, all bugs are shallow.

Raymond's 1999 formulation, named for Torvalds. Heartbleed sat in OpenSSL for two years despite being open source, which suggests eyeballs must be both numerous and looking.

In practice

  • A typo in a public document is corrected within the hour, and a subtle flaw in the same document sits for two years, both equally visible.
  • The defensible version is that eyeballs must be both numerous and looking — a project with many users and no funded reviewers has neither.
Attributed to
Eric S. Raymond, named for Linus Torvalds
Also called
Given enough eyeballs, all bugs are shallow
Further reading
Wikipedia

However many defects have been found, one more remains, so testing establishes presence and never absence.

The practical consequence is about stopping rules. Since no amount of testing licenses the conclusion that a system is correct, the decision to ship is always a judgement about acceptable residual risk rather than a finding of correctness, and treating it as the latter is how organisations are surprised.

In practice

  • A team that declares a release bug-free has described its testing, not its software.
  • An audit that finds nothing has told you about the audit as much as about the accounts.
Attributed to
Unattributed
Also called
There is always one more bug
Standing
Compare Dijkstra's observation that testing shows the presence of bugs and never their absence, which states the same point formally.

What is easy for humans is hard for machines and what is hard for humans is easy for machines.

Moravec's 1988 observation: a computer can play grandmaster chess and cannot pick up a cup. A billion years of evolution went into perception and movement, and a few thousand into abstract reasoning.

In practice

  • A machine that beats any human at chess cannot fold a towel.
  • A system that summarises a legal document flawlessly cannot reliably tell whether the office kitchen is tidy.
Attributed to
Hans Moravec
Further reading
Wikipedia

The first 90% of the code accounts for the first 90% of the time; the remaining 10% takes the other 90%.

Cargill's rule from Bell Labs. The 180% is the joke and the observation is exact: integration, edge cases and deployment consume time that the feature-complete estimate never included.

In practice

  • A release that is feature-complete in six weeks takes another six on integration, edge cases and deployment.
  • A kitchen extension that is "basically done" takes as long again for the snagging list nobody scoped.
Attributed to
Tom Cargill
Also called
The last ten percent
Further reading
Wikipedia

Variables won't, constants aren't.

From the Murphy's law canon, and a warning about model inputs: parameters assumed fixed will drift, and parameters assumed to vary will turn out to have been fixed by something nobody documented.

In practice

  • A model whose "fixed" exchange rate assumption held for eleven years breaks in month one of the forecast.
  • A capacity plan built on a constant conversion rate is invalidated when the marketing mix changes, and the constant was never a constant.
Attributed to
Murphy's law canon

People say they care greatly about privacy and then disclose personal information for small conveniences or rewards.

Named in consumer research in the early 2000s and tested by Norberg, Horne and Horne in 2007, who found disclosure far exceeding what the same people said they were willing to give. Later work disputes the framing: stated attitudes are general while behaviour is specific, the choices are made inside interfaces designed to produce them, and nobody can price a risk that arrives years later in a form they cannot trace. Solove argued in 2021 that the paradox is largely an artefact of comparing attitudes about one thing with behaviour about another.

In practice

  • A survey respondent rates data protection as very important and takes a loyalty card for a discount on coffee.
  • A user who objects to tracking accepts the consent banner, because the article is behind it.
Attributed to
Consumer research; Norberg, Horne & Horne
Possible explanations
One explanation is that stated attitudes are general while behaviour is specific. Another is that choices are made inside interfaces designed to produce them. A third is that nobody can price a risk that arrives years later in a form they cannot trace.
In its favour
The behaviour is not in doubt, since disclosure repeatedly exceeds what the same people say they are willing to give, and the gap is large enough to matter for policy.
Against it
Whether it shows insincere preferences or unactionable ones is disputed, and Solove argued in 2021 that the paradox is largely an artefact of comparing attitudes about one thing with behaviour about another.
Standing
Contested. The behaviour is not in doubt; whether it shows that the stated preference is insincere, or that consent mechanisms make the preference unactionable, is.

Anyone can design a security system so clever that they themselves cannot think of a way to break it.

Schneier's law is a warning about self-assessment: the designer cannot test their own system, since the same mind that missed the flaw is doing the looking. It is the case for public cryptanalysis.

In practice

  • An engineer who wrote a login system cannot find its flaw in a fortnight, and a stranger finds it in an afternoon.
  • A team that reviews its own architecture finds the problems it was already looking for, which is the case for external review rather than for more diligence.
Attributed to
Bruce Schneier

Expedient design choices accrue interest, and unpaid interest eventually consumes the capacity to change.

Cunningham's 1992 metaphor. Its useful precision is the interest: the cost is not the shortcut itself but the compounding drag on every subsequent change, which is what makes it debt.

In practice

  • A feature shipped in three days rather than three weeks costs an extra hour on every change for the next four years.
  • A team that takes a deliberate shortcut and records it can repay it; one that takes it silently pays interest without knowing the principal.
Attributed to
Ward Cunningham
Also called
Design debt; cruft
Further reading
Wikipedia

Progress is made on alternate Fridays.

From the Murphy's law canon, collected in Arthur Bloch's books among the laws of research and development alongside Cheops's Law. It lands because a project log bears it out: most weeks record effort and only a few record a result, and those few arrive when a decision, a part or a person finally does.

In practice

  • A feature reads 'in progress' on six consecutive weekly reports and is then finished in two days, the week a blocking decision is finally made.
  • A thesis student reads for a month with nothing on the page, then drafts a chapter over one weekend once the argument comes clear.
Attributed to
Murphy's law canon
Also called
Nienberg's Law
Standing
The attribution is uncertain: the line also circulates as Nienberg's Law, and no source says which Weinberg first said it. Not the same law as Weinberg's Second Law, Gerald Weinberg's woodpecker analogy.

If builders built the way programmers program, the first woodpecker would destroy civilisation.

The analogy points at a difference in accumulated standards rather than in the people. Building acquired load factors, inspection and liability across centuries of visible collapses; software has had decades and its failures are mostly invisible. The comparison is unfair in its own terms and it keeps being made because the asymmetry it names is real.

In practice

  • A bridge is signed off by an engineer who is personally liable; a payroll system ships with a known defect list and a release note.
  • A firm that would never accept one failure in a thousand structural beams accepts a login that fails for one user in a hundred, and files it as an edge case.
Attributed to
Gerald Weinberg
Also called
The woodpecker analogy
Standing
Often quoted simply as Weinberg's Law. Compare the entries on technical debt and the Swiss cheese model.

Any task decomposes into a chain of unrelated prerequisites that obscures the original goal.

Vieri's term, from a Ren and Stimpy episode. Its practical use is noticing when you are four prerequisites deep and can no longer state why you started.

In practice

  • A cook who set out to make soup is repairing a tin opener, and every step followed from the last.
  • A developer who set out to fix a typo and is now upgrading a build tool has lost the afternoon to a chain each link of which was necessary.
Attributed to
Carlin Vieri
Further reading
Wikipedia

Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced.

Zawinski's 1995 observation. Its modern form is that every successful application accretes a chat feature, and the underlying claim is about the gravitational pull of communication features.

In practice

  • A document editor adds comments, then mentions, then notifications, and is competing with the chat tool nobody set out to replace.
  • A project tracker's most-used feature after two years is the comment thread, and the tracking is what people tolerate to get it.
Attributed to
Jamie Zawinski
Also called
Law of software envelopment