<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Hammurabi</title>
    <link>https://kanywst.github.io/hammurabi/</link>
    <description>Engineering laws, each with its counter-force.</description>
    <language>en</language>
    <item>
      <title>§ 116 Psychological Safety</title>
      <link>https://kanywst.github.io/hammurabi/laws/psychological-safety/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/psychological-safety/</guid>
      <description>A team learns when its members admit mistakes, ask for help and disagree, and they do that far more readily when they believe it is safe to.</description>
    </item>
    <item>
      <title>§ 115 Twyman's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/twymans-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/twymans-law/</guid>
      <description>When real effects that large are rare, a metric that moves surprisingly far is more often a bug in the measurement or the analysis than a real effect.</description>
    </item>
    <item>
      <title>§ 114 McNamara Fallacy</title>
      <link>https://kanywst.github.io/hammurabi/laws/mcnamara-fallacy/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/mcnamara-fallacy/</guid>
      <description>Decisions drift toward whatever can be counted, until what cannot be counted is treated as if it did not exist.</description>
    </item>
    <item>
      <title>§ 113 Maker's Schedule, Manager's Schedule</title>
      <link>https://kanywst.github.io/hammurabi/laws/makers-schedule/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/makers-schedule/</guid>
      <description>People who make things need long unbroken blocks of time, and a calendar run in one-hour slots breaks those blocks into pieces too small to use.</description>
    </item>
    <item>
      <title>§ 112 Kingman's Formula</title>
      <link>https://kanywst.github.io/hammurabi/laws/kingmans-formula/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/kingmans-formula/</guid>
      <description>As a server's utilization approaches 100%, the time work spends waiting for it climbs steeply, and variability in arrivals and service multiplies the climb.</description>
    </item>
    <item>
      <title>§ 111 Most Ideas Fail</title>
      <link>https://kanywst.github.io/hammurabi/laws/most-ideas-fail/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/most-ideas-fail/</guid>
      <description>In online controlled experiments at large web companies, most ideas that survived the team's own pruning do nothing or make things worse once they are measured, and experts tend to be poor at telling in advance which ones.</description>
    </item>
    <item>
      <title>§ 110 Wicked Problems</title>
      <link>https://kanywst.github.io/hammurabi/laws/wicked-problems/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/wicked-problems/</guid>
      <description>For some problems, working out what the problem is and choosing a solution are the same act, so the requirements cannot be settled before the design starts and there is no point at which the problem is done.</description>
    </item>
    <item>
      <title>§ 109 Pre-Mortem</title>
      <link>https://kanywst.github.io/hammurabi/laws/pre-mortem/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/pre-mortem/</guid>
      <description>People who doubt a plan the team has already committed to tend to keep quiet; asking them to explain a failure that has already happened draws the doubts out.</description>
    </item>
    <item>
      <title>§ 108 The Last Responsible Moment</title>
      <link>https://kanywst.github.io/hammurabi/laws/last-responsible-moment/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/last-responsible-moment/</guid>
      <description>Commit too early and a guess hardens into the design; wait too long and an option quietly expires, so the decision gets made by default without anyone making it.</description>
    </item>
    <item>
      <title>§ 107 Cost of Delay</title>
      <link>https://kanywst.github.io/hammurabi/laws/cost-of-delay/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/cost-of-delay/</guid>
      <description>Work gets ordered by size, by gut feel or by whoever asks loudest, while what each item loses every week it waits goes uncounted, so the most valuable work often waits behind the merely visible.</description>
    </item>
    <item>
      <title>§ 106 The Lethal Trifecta</title>
      <link>https://kanywst.github.io/hammurabi/laws/lethal-trifecta/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/lethal-trifecta/</guid>
      <description>An AI agent that can read private data, takes in content from outside and can send data out can be steered into leaking that data by whoever wrote the content.</description>
    </item>
    <item>
      <title>§ 105 Test Oracle Problem</title>
      <link>https://kanywst.github.io/hammurabi/laws/test-oracle-problem/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/test-oracle-problem/</guid>
      <description>A test can only catch a wrong answer if something independent of the code knows the right one, and for many programs nothing does.</description>
    </item>
    <item>
      <title>§ 104 Programming as Theory Building</title>
      <link>https://kanywst.github.io/hammurabi/laws/programming-as-theory-building/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/programming-as-theory-building/</guid>
      <description>A program's design lives in the heads of the people who built it, and the code and documents carry only part of it, so once those people are gone, changes tend to erode the design even with full documentation in hand.</description>
    </item>
    <item>
      <title>§ 103 Small Changes</title>
      <link>https://kanywst.github.io/hammurabi/laws/small-changes/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/small-changes/</guid>
      <description>The larger a change sent for review, the less closely each line is read: defects slip through and the change waits longer for a first look.</description>
    </item>
    <item>
      <title>§ 102 Automation Bias</title>
      <link>https://kanywst.github.io/hammurabi/laws/automation-bias/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/automation-bias/</guid>
      <description>People working with an automated aid tend to let it stand in for their own checking: they miss what it fails to flag and follow it when it is wrong.</description>
    </item>
    <item>
      <title>§ 101 Brandolini's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/brandolinis-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/brandolinis-law/</guid>
      <description>Refuting a false claim takes far more effort than making it, so a stream of cheap claims can swamp the people who have to check them.</description>
    </item>
    <item>
      <title>§ 100 Braintrust (Notes Without Authority)</title>
      <link>https://kanywst.github.io/hammurabi/laws/braintrust/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/braintrust/</guid>
      <description>Feedback from people who can overrule the owner gets defended against rather than used; peers with no power to impose a fix can be candid, and the owner can afford to hear them.</description>
    </item>
    <item>
      <title>§ 99 Believability-Weighted Decisions</title>
      <link>https://kanywst.github.io/hammurabi/laws/believability-weighted-decisions/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/believability-weighted-decisions/</guid>
      <description>When a group counts every opinion the same, or defers to rank, the people who have actually done the thing before are outvoted by those who have not.</description>
    </item>
    <item>
      <title>§ 98 Genchi Genbutsu (Go and See)</title>
      <link>https://kanywst.github.io/hammurabi/laws/genchi-genbutsu/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/genchi-genbutsu/</guid>
      <description>Decisions made from reports drift away from what is actually happening, because each layer of summary drops the detail that did not fit its form.</description>
    </item>
    <item>
      <title>§ 97 One-Version Rule</title>
      <link>https://kanywst.github.io/hammurabi/laws/one-version-rule/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/one-version-rule/</guid>
      <description>When consumers may choose which version of a shared dependency to use, each choice becomes a conflict for someone who never made it.</description>
    </item>
    <item>
      <title>§ 96 Narratives, Not Slides</title>
      <link>https://kanywst.github.io/hammurabi/laws/narratives-not-slides/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/narratives-not-slides/</guid>
      <description>An argument cut down to slides and bullets loses the links between its points, so the gaps and warnings that prose would have exposed pass through the review unnoticed.</description>
    </item>
    <item>
      <title>§ 95 Pesticide Paradox</title>
      <link>https://kanywst.github.io/hammurabi/laws/pesticide-paradox/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/pesticide-paradox/</guid>
      <description>Every way of finding bugs leaves behind the bugs it cannot find, so a test suite that never changes finds fewer and fewer.</description>
    </item>
    <item>
      <title>§ 94 Bus Factor</title>
      <link>https://kanywst.github.io/hammurabi/laws/bus-factor/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/bus-factor/</guid>
      <description>The fewer people who can keep a system running, the more its future depends on each of them staying.</description>
    </item>
    <item>
      <title>§ 93 Lehman's Laws of Software Evolution</title>
      <link>https://kanywst.github.io/hammurabi/laws/lehmans-laws/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/lehmans-laws/</guid>
      <description>A program in real use must keep changing or grow less useful, and each change makes it more complex unless work is spent to simplify it.</description>
    </item>
    <item>
      <title>§ 92 Technical Debt</title>
      <link>https://kanywst.github.io/hammurabi/laws/technical-debt/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/technical-debt/</guid>
      <description>Code shipped before the team fully understands the problem charges extra on later changes to that code until someone rewrites it.</description>
    </item>
    <item>
      <title>§ 91 Choose Boring Technology</title>
      <link>https://kanywst.github.io/hammurabi/laws/choose-boring-technology/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/choose-boring-technology/</guid>
      <description>Every unfamiliar technology a team adopts brings unknown failure modes and a permanent operating cost, and a team can afford only a few of them.</description>
    </item>
    <item>
      <title>§ 90 Strangler Fig</title>
      <link>https://kanywst.github.io/hammurabi/laws/strangler-fig/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/strangler-fig/</guid>
      <description>Replacing a live system piece by piece around its edges is usually safer than replacing it all at once.</description>
    </item>
    <item>
      <title>§ 89 Fixed Time, Variable Scope</title>
      <link>https://kanywst.github.io/hammurabi/laws/fixed-time-variable-scope/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/fixed-time-variable-scope/</guid>
      <description>When scope is fixed and time is not, the date slips and the scope stays; fixing the time instead forces a choice about what matters.</description>
    </item>
    <item>
      <title>§ 88 Churn Rule</title>
      <link>https://kanywst.github.io/hammurabi/laws/churn-rule/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/churn-rule/</guid>
      <description>When the team that changes shared infrastructure can push the migration onto its users, the cost of the change multiplies by the number of users.</description>
    </item>
    <item>
      <title>§ 87 Beyoncé Rule</title>
      <link>https://kanywst.github.io/hammurabi/laws/beyonce-rule/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/beyonce-rule/</guid>
      <description>In a shared codebase, the behavior no test checks is the behavior that changes without warning.</description>
    </item>
    <item>
      <title>§ 86 Approve What Improves Code Health</title>
      <link>https://kanywst.github.io/hammurabi/laws/code-health-standard/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/code-health-standard/</guid>
      <description>Holding every change to a standard of perfection makes review slow, and slow review leaves the codebase worse, not better.</description>
    </item>
    <item>
      <title>§ 85 Context, Not Control</title>
      <link>https://kanywst.github.io/hammurabi/laws/context-not-control/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/context-not-control/</guid>
      <description>As an organization grows, rules and approvals tend to scale worse than shared understanding; Netflix's argument is that people given the reasons behind a goal make better local decisions than people given a procedure.</description>
    </item>
    <item>
      <title>§ 84 Chaos Engineering</title>
      <link>https://kanywst.github.io/hammurabi/laws/chaos-engineering/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/chaos-engineering/</guid>
      <description>Resilience that has never been exercised is a hypothesis, and production will test it whether or not you schedule the test.</description>
    </item>
    <item>
      <title>§ 83 Five Whys</title>
      <link>https://kanywst.github.io/hammurabi/laws/five-whys/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/five-whys/</guid>
      <description>The first answer to &quot;why did this fail&quot; is usually a symptom, and fixing a symptom leaves the cause in place to fail again.</description>
    </item>
    <item>
      <title>§ 82 Andon (Stop the Line)</title>
      <link>https://kanywst.github.io/hammurabi/laws/andon/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/andon/</guid>
      <description>Letting anyone who sees an abnormality stop the line keeps a defect from traveling downstream, where it costs more to find and fix.</description>
    </item>
    <item>
      <title>§ 81 Mechanisms, Not Good Intentions</title>
      <link>https://kanywst.github.io/hammurabi/laws/mechanisms-not-good-intentions/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/mechanisms-not-good-intentions/</guid>
      <description>Asking people to try harder after a failure changes little, because the failure happened to people who were already trying.</description>
    </item>
    <item>
      <title>§ 80 Constant Work</title>
      <link>https://kanywst.github.io/hammurabi/laws/constant-work/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/constant-work/</guid>
      <description>A system whose work grows with the number of changes or failures does the most work exactly when it has the least headroom.</description>
    </item>
    <item>
      <title>§ 79 Avoid Fallback</title>
      <link>https://kanywst.github.io/hammurabi/laws/avoid-fallback/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/avoid-fallback/</guid>
      <description>A fallback path runs only after something has already failed, so the least-tested code in the system runs under the worst conditions.</description>
    </item>
    <item>
      <title>§ 78 Static Stability</title>
      <link>https://kanywst.github.io/hammurabi/laws/static-stability/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/static-stability/</guid>
      <description>A system that has to take new action to survive a failure depends on that action succeeding at the moment things are going wrong.</description>
    </item>
    <item>
      <title>§ 77 You Build It, You Run It</title>
      <link>https://kanywst.github.io/hammurabi/laws/you-build-it-you-run-it/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/you-build-it-you-run-it/</guid>
      <description>When the team that writes a service also operates it, the cost of every operational weakness lands on the people who can fix it.</description>
    </item>
    <item>
      <title>§ 76 Disagree and Commit</title>
      <link>https://kanywst.github.io/hammurabi/laws/disagree-and-commit/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/disagree-and-commit/</guid>
      <description>Waiting for everyone to agree is often slower than committing and correcting course if the call turns out wrong.</description>
    </item>
    <item>
      <title>§ 75 Working Backwards</title>
      <link>https://kanywst.github.io/hammurabi/laws/working-backwards/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/working-backwards/</guid>
      <description>Teams that start from a solution often build things no customer needed; starting from the announcement exposes that early.</description>
    </item>
    <item>
      <title>§ 74 Blameless Postmortem</title>
      <link>https://kanywst.github.io/hammurabi/laws/blameless-postmortem/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/blameless-postmortem/</guid>
      <description>Punishing the person nearest a failure teaches people to hide what they did.</description>
    </item>
    <item>
      <title>§ 73 Toil</title>
      <link>https://kanywst.github.io/hammurabi/laws/toil/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/toil/</guid>
      <description>Manual, repetitive operational work grows with the service and, left unchecked, crowds out engineering.</description>
    </item>
    <item>
      <title>§ 72 Error Budget</title>
      <link>https://kanywst.github.io/hammurabi/laws/error-budget/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/error-budget/</guid>
      <description>An SLO below 100% leaves a measurable allowance of failure, and that allowance can be spent.</description>
    </item>
    <item>
      <title>§ 71 Shirky Principle</title>
      <link>https://kanywst.github.io/hammurabi/laws/shirky-principle/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/shirky-principle/</guid>
      <description>Institutions tend to keep alive the problem they exist to solve.</description>
    </item>
    <item>
      <title>§ 70 Ringelmann Effect</title>
      <link>https://kanywst.github.io/hammurabi/laws/ringelmann-effect/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/ringelmann-effect/</guid>
      <description>Each person contributes less as a group grows, most of all when no one can see who did what.</description>
    </item>
    <item>
      <title>§ 69 Metcalfe's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/metcalfes-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/metcalfes-law/</guid>
      <description>Each new node adds value to every existing one, so a network's value outgrows its size.</description>
    </item>
    <item>
      <title>§ 68 The Bitter Lesson</title>
      <link>https://kanywst.github.io/hammurabi/laws/the-bitter-lesson/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/the-bitter-lesson/</guid>
      <description>In AI, general methods that scale with compute have, in the long run, beaten hand-coded human knowledge.</description>
    </item>
    <item>
      <title>§ 67 Amara's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/amaras-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/amaras-law/</guid>
      <description>New technology is overrated in its first years and underrated over a decade.</description>
    </item>
    <item>
      <title>§ 66 Moore's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/moores-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/moores-law/</guid>
      <description>The number of transistors on a chip at lowest cost per part doubles about every two years.</description>
    </item>
    <item>
      <title>§ 65 Second-System Effect</title>
      <link>https://kanywst.github.io/hammurabi/laws/second-system-effect/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/second-system-effect/</guid>
      <description>After a first success, designers tend to pack the ideas they deferred into the second system.</description>
    </item>
    <item>
      <title>§ 64 Principle of Least Astonishment</title>
      <link>https://kanywst.github.io/hammurabi/laws/principle-of-least-astonishment/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/principle-of-least-astonishment/</guid>
      <description>Behavior that surprises users costs more than behavior that is slightly worse but expected.</description>
    </item>
    <item>
      <title>§ 63 Single Responsibility Principle</title>
      <link>https://kanywst.github.io/hammurabi/laws/single-responsibility-principle/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/single-responsibility-principle/</guid>
      <description>A module serving two groups gets conflicting change requests from both.</description>
    </item>
    <item>
      <title>§ 62 Occam's Razor</title>
      <link>https://kanywst.github.io/hammurabi/laws/occams-razor/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/occams-razor/</guid>
      <description>The explanation that needs the fewest unverified assumptions is usually the right one.</description>
    </item>
    <item>
      <title>§ 61 Theory of Constraints</title>
      <link>https://kanywst.github.io/hammurabi/laws/theory-of-constraints/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/theory-of-constraints/</guid>
      <description>A system's throughput is set by its single tightest bottleneck.</description>
    </item>
    <item>
      <title>§ 60 DRY Principle</title>
      <link>https://kanywst.github.io/hammurabi/laws/dry-principle/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/dry-principle/</guid>
      <description>Knowledge kept in two places drifts apart, because nothing makes the copies change together.</description>
    </item>
    <item>
      <title>§ 59 KISS Principle</title>
      <link>https://kanywst.github.io/hammurabi/laws/kiss-principle/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/kiss-principle/</guid>
      <description>A system has to be simple enough for an ordinary person to fix under bad conditions.</description>
    </item>
    <item>
      <title>§ 58 YAGNI</title>
      <link>https://kanywst.github.io/hammurabi/laws/yagni/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/yagni/</guid>
      <description>Code built for imagined future needs costs time now and rarely fits the need that arrives.</description>
    </item>
    <item>
      <title>§ 57 Broken Windows Theory</title>
      <link>https://kanywst.github.io/hammurabi/laws/broken-windows-theory/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/broken-windows-theory/</guid>
      <description>Visible disorder left unrepaired can signal that standards are optional, inviting more.</description>
    </item>
    <item>
      <title>§ 56 Normal Accident Theory</title>
      <link>https://kanywst.github.io/hammurabi/laws/normal-accident-theory/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/normal-accident-theory/</guid>
      <description>In complex, tightly coupled systems, accidents are built into the structure.</description>
    </item>
    <item>
      <title>§ 55 Jevons Paradox</title>
      <link>https://kanywst.github.io/hammurabi/laws/jevons-paradox/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/jevons-paradox/</guid>
      <description>Making a resource cheaper to use can increase how much of it is used in total.</description>
    </item>
    <item>
      <title>§ 54 Law of Demeter</title>
      <link>https://kanywst.github.io/hammurabi/laws/law-of-demeter/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/law-of-demeter/</guid>
      <description>Code that reaches through other objects' internals breaks when anything in the chain changes.</description>
    </item>
    <item>
      <title>§ 53 Ashby's Law of Requisite Variety</title>
      <link>https://kanywst.github.io/hammurabi/laws/ashbys-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/ashbys-law/</guid>
      <description>A controller can only handle a system if it can respond to as many states as the system has.</description>
    </item>
    <item>
      <title>§ 52 The Tail at Scale</title>
      <link>https://kanywst.github.io/hammurabi/laws/tail-at-scale/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/tail-at-scale/</guid>
      <description>When one request fans out to many servers, the slowest one sets the response time.</description>
    </item>
    <item>
      <title>§ 51 Gustafson's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/gustafsons-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/gustafsons-law/</guid>
      <description>When the problem grows with the machine, parallel speedup keeps growing nearly linearly.</description>
    </item>
    <item>
      <title>§ 50 Kerckhoffs's Principle</title>
      <link>https://kanywst.github.io/hammurabi/laws/kerckhoffs-principle/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/kerckhoffs-principle/</guid>
      <description>A system that is secure only while its design stays secret is not secure.</description>
    </item>
    <item>
      <title>§ 49 Principle of Least Privilege</title>
      <link>https://kanywst.github.io/hammurabi/laws/principle-of-least-privilege/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/principle-of-least-privilege/</guid>
      <description>Every permission a component doesn't need widens the damage when something goes wrong.</description>
    </item>
    <item>
      <title>§ 48 Ironies of Automation</title>
      <link>https://kanywst.github.io/hammurabi/laws/ironies-of-automation/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/ironies-of-automation/</guid>
      <description>Automation leaves people only the hardest cases, after their skills have faded from disuse.</description>
    </item>
    <item>
      <title>§ 47 Fallacies of Distributed Computing</title>
      <link>https://kanywst.github.io/hammurabi/laws/fallacies-of-distributed-computing/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/fallacies-of-distributed-computing/</guid>
      <description>Networked code quietly assumes eight things about the network that are false in production.</description>
    </item>
    <item>
      <title>§ 46 Miller's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/millers-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/millers-law/</guid>
      <description>Working memory holds only a handful of chunks (Miller said about seven; later estimates are lower).</description>
    </item>
    <item>
      <title>§ 45 Fitts's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/fitts-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/fitts-law/</guid>
      <description>Small, distant targets take longer to hit and get missed more often.</description>
    </item>
    <item>
      <title>§ 44 Hick's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/hicks-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/hicks-law/</guid>
      <description>The more options people are given, the longer they take to choose one.</description>
    </item>
    <item>
      <title>§ 43 Eagleson's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/eaglesons-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/eaglesons-law/</guid>
      <description>Your own code that you haven't read in six months might as well be someone else's.</description>
    </item>
    <item>
      <title>§ 42 Ninety-Ninety Rule</title>
      <link>https://kanywst.github.io/hammurabi/laws/ninety-ninety-rule/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/ninety-ninety-rule/</guid>
      <description>The last 10% of the work tends to take as long as the first 90% did.</description>
    </item>
    <item>
      <title>§ 41 Wirth's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/wirths-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/wirths-law/</guid>
      <description>Software gets slower faster than hardware gets faster.</description>
    </item>
    <item>
      <title>§ 40 Parkinson's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/parkinsons-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/parkinsons-law/</guid>
      <description>Work expands to fill the time available for it.</description>
    </item>
    <item>
      <title>§ 39 Peter Principle</title>
      <link>https://kanywst.github.io/hammurabi/laws/peter-principle/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/peter-principle/</guid>
      <description>People tend to get promoted until they reach a role they are bad at, and stay there.</description>
    </item>
    <item>
      <title>§ 38 Two Generals Problem</title>
      <link>https://kanywst.github.io/hammurabi/laws/two-generals-problem/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/two-generals-problem/</guid>
      <description>Over an unreliable channel, two parties can never be certain they have agreed.</description>
    </item>
    <item>
      <title>§ 37 Little's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/littles-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/littles-law/</guid>
      <description>In a stable system, the average number of items inside equals arrival rate times average time spent.</description>
    </item>
    <item>
      <title>§ 36 CAP Theorem</title>
      <link>https://kanywst.github.io/hammurabi/laws/cap-theorem/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/cap-theorem/</guid>
      <description>During a network partition, a data store must give up either consistency or availability.</description>
    </item>
    <item>
      <title>§ 35 Linus's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/linus-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/linus-law/</guid>
      <description>A bug that stumps one person is often obvious to someone else looking at the same code.</description>
    </item>
    <item>
      <title>§ 34 Premature Optimization</title>
      <link>https://kanywst.github.io/hammurabi/laws/premature-optimization/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/premature-optimization/</guid>
      <description>Optimizing before measuring spends effort on code that isn't the bottleneck.</description>
    </item>
    <item>
      <title>§ 33 Swiss Cheese Model</title>
      <link>https://kanywst.github.io/hammurabi/laws/swiss-cheese-model/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/swiss-cheese-model/</guid>
      <description>Every safeguard has holes; accidents happen when the holes in several layers line up.</description>
    </item>
    <item>
      <title>§ 32 Curse of Knowledge</title>
      <link>https://kanywst.github.io/hammurabi/laws/curse-of-knowledge/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/curse-of-knowledge/</guid>
      <description>Once you know something, you can't easily imagine what it's like not to know it.</description>
    </item>
    <item>
      <title>§ 31 Dunning-Kruger Effect</title>
      <link>https://kanywst.github.io/hammurabi/laws/dunning-kruger-effect/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/dunning-kruger-effect/</guid>
      <description>People who are least skilled at something tend to overrate their ability the most.</description>
    </item>
    <item>
      <title>§ 30 Tesler's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/teslers-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/teslers-law/</guid>
      <description>A system's inherent complexity can't be removed, only moved to someone else.</description>
    </item>
    <item>
      <title>§ 29 Boy Scout Rule</title>
      <link>https://kanywst.github.io/hammurabi/laws/boy-scout-rule/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/boy-scout-rule/</guid>
      <description>Code decays because cleanup tends to be deferred to a refactor that rarely happens.</description>
    </item>
    <item>
      <title>§ 28 Murphy's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/murphys-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/murphys-law/</guid>
      <description>Given enough time and traffic, a failure mode that can happen eventually will.</description>
    </item>
    <item>
      <title>§ 27 Bystander Effect</title>
      <link>https://kanywst.github.io/hammurabi/laws/bystander-effect/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/bystander-effect/</guid>
      <description>The more people who see a problem, the less likely any one of them is to act on it.</description>
    </item>
    <item>
      <title>§ 26 Cunningham's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/cunninghams-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/cunninghams-law/</guid>
      <description>People are quicker to correct a wrong answer than to answer a question.</description>
    </item>
    <item>
      <title>§ 25 Worse is Better</title>
      <link>https://kanywst.github.io/hammurabi/laws/worse-is-better/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/worse-is-better/</guid>
      <description>A simpler design that is easy to build and adopt tends to beat a more correct but complex one.</description>
    </item>
    <item>
      <title>§ 24 Dunbar's Number</title>
      <link>https://kanywst.github.io/hammurabi/laws/dunbars-number/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/dunbars-number/</guid>
      <description>People keep only about 150 stable relationships. Engineers extrapolate: past shared context, added headcount goes to coordination.</description>
    </item>
    <item>
      <title>§ 23 Cobra Effect</title>
      <link>https://kanywst.github.io/hammurabi/laws/cobra-effect/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/cobra-effect/</guid>
      <description>An incentive meant to reduce a problem rewards people for producing more of it.</description>
    </item>
    <item>
      <title>§ 22 Kernighan's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/kernighans-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/kernighans-law/</guid>
      <description>Debugging is harder than writing, so code written at your cleverest is beyond your debugging.</description>
    </item>
    <item>
      <title>§ 21 Survivorship Bias</title>
      <link>https://kanywst.github.io/hammurabi/laws/survivorship-bias/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/survivorship-bias/</guid>
      <description>Conclusions drawn only from successes ignore the failures that used the same strategy.</description>
    </item>
    <item>
      <title>§ 20 Pareto Principle</title>
      <link>https://kanywst.github.io/hammurabi/laws/pareto-principle/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/pareto-principle/</guid>
      <description>Most of the effect comes from a small share of the causes, such as bugs in a few modules.</description>
    </item>
    <item>
      <title>§ 19 Law of Leaky Abstractions</title>
      <link>https://kanywst.github.io/hammurabi/laws/leaky-abstractions/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/leaky-abstractions/</guid>
      <description>Every non-trivial abstraction eventually exposes the details it was meant to hide.</description>
    </item>
    <item>
      <title>§ 18 Amdahl's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/amdahls-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/amdahls-law/</guid>
      <description>Speeding up one part of a system barely helps when the bottleneck is somewhere else.</description>
    </item>
    <item>
      <title>§ 17 Cargo Cult Engineering</title>
      <link>https://kanywst.github.io/hammurabi/laws/cargo-cult-engineering/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/cargo-cult-engineering/</guid>
      <description>Teams copy another company's practices without the conditions that made them work.</description>
    </item>
    <item>
      <title>§ 16 Sunk Cost Fallacy</title>
      <link>https://kanywst.github.io/hammurabi/laws/sunk-cost-fallacy/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/sunk-cost-fallacy/</guid>
      <description>Teams keep funding a failing project because of what they have already spent on it.</description>
    </item>
    <item>
      <title>§ 15 Lindy Effect</title>
      <link>https://kanywst.github.io/hammurabi/laws/lindy-effect/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/lindy-effect/</guid>
      <description>For ideas and software, the longer something has survived, the longer it is likely to last.</description>
    </item>
    <item>
      <title>§ 14 Goodhart's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/goodharts-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/goodharts-law/</guid>
      <description>A number stops measuring well once people are rewarded for moving it.</description>
    </item>
    <item>
      <title>§ 13 Hofstadter's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/hofstadters-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/hofstadters-law/</guid>
      <description>Work takes longer than estimated, even when the estimate already allows for that.</description>
    </item>
    <item>
      <title>§ 12 Hanlon's Razor</title>
      <link>https://kanywst.github.io/hammurabi/laws/hanlons-razor/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/hanlons-razor/</guid>
      <description>People read malice into delays and bugs that are better explained by fatigue or missing context.</description>
    </item>
    <item>
      <title>§ 11 Postel's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/postels-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/postels-law/</guid>
      <description>Systems that assume every peer follows the spec exactly tend to be brittle against the first one that doesn't.</description>
    </item>
    <item>
      <title>§ 10 XY Problem</title>
      <link>https://kanywst.github.io/hammurabi/laws/xy-problem/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/xy-problem/</guid>
      <description>People ask for help with their attempted fix instead of the problem they actually have.</description>
    </item>
    <item>
      <title>§ 9 Brooks' Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/brooks-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/brooks-law/</guid>
      <description>Adding people to a late project tends to make it later, because ramp-up and coordination cost more than they add.</description>
    </item>
    <item>
      <title>§ 8 Hyrum's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/hyrums-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/hyrums-law/</guid>
      <description>With enough users, every observable behavior of a system, bugs included, is depended on.</description>
    </item>
    <item>
      <title>§ 7 Conway's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/conways-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/conways-law/</guid>
      <description>Systems end up shaped like the communication paths of the teams that build them.</description>
    </item>
    <item>
      <title>§ 6 Gall's Law</title>
      <link>https://kanywst.github.io/hammurabi/laws/galls-law/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/galls-law/</guid>
      <description>Complex systems that work usually grew from simple systems that worked; designed ones rarely do.</description>
    </item>
    <item>
      <title>§ 5 Law of Triviality</title>
      <link>https://kanywst.github.io/hammurabi/laws/law-of-triviality/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/law-of-triviality/</guid>
      <description>Discussion goes to the parts everyone understands, not the parts that matter.</description>
    </item>
    <item>
      <title>§ 4 Normalcy Bias</title>
      <link>https://kanywst.github.io/hammurabi/laws/normalcy-bias/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/normalcy-bias/</guid>
      <description>Faced with a real anomaly, people reach for the familiar, harmless explanation.</description>
    </item>
    <item>
      <title>§ 3 Chesterton's Fence</title>
      <link>https://kanywst.github.io/hammurabi/laws/chestertons-fence/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/chestertons-fence/</guid>
      <description>Code or rules whose origin you don't know look like clutter, which makes them tempting to delete.</description>
    </item>
    <item>
      <title>§ 2 Normalization of Deviance</title>
      <link>https://kanywst.github.io/hammurabi/laws/normalization-of-deviance/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/normalization-of-deviance/</guid>
      <description>A broken rule that causes no immediate harm quietly becomes the new normal.</description>
    </item>
    <item>
      <title>§ 1 Type 1 vs Type 2 Decisions</title>
      <link>https://kanywst.github.io/hammurabi/laws/type-1-vs-type-2-decisions/</link>
      <guid isPermaLink="true">https://kanywst.github.io/hammurabi/laws/type-1-vs-type-2-decisions/</guid>
      <description>Teams spend the caution meant for irreversible decisions on ones they could easily undo.</description>
    </item>
  </channel>
</rss>
