Tuesday, May 06, 2025

Murphy‘s Laws for the Modern World

Here you‘ll find a collection of potential Murphy‘s Laws. These laws are adapted to the current state of the art. They are provided in remembrance of Edward A. Murphy Jr.


MURPHY’S META LAW

MT.1 (Unknown Law) 
„The law you don‘t know, always bites you“

Context: Thinking any of Murphy‘s laws can be neglected.

Explanation: Knowing your enemies helps escape threats and risks. Being unprepared, is the root of all evil.

INFRASTRUCTURE

I.1 (Cloud Outage):

“If you architect for five-nines, your provider will deliver exactly four-point-nine.”

Context: Relying solely on a single cloud region’s SLA.

Explanation: Removing your own redundancy shifts you onto the provider’s maintenance schedule—and their one rare cascading failure.


I.2 (DNS Delay):

“Any DNS change takes effect exactly when you need the old record.”

Context: Blue-green deployments, cutovers.

Explanation: TTLs and caches conspire so half your users hit the decommissioned endpoint.


I.3 (Config Drift):

“Infrastructure as Code drifts into ‘Infrastructure as Surprise’ at scale.”

Context: Large teams modifying live environments.

Explanation: Manual tweaks circumvent code, so your IaC never matches reality when you test.


I.4 (Network Partition):

“The network will split just long enough to commit your transaction twice.”

Context: Distributed databases, two-phase commit.

Explanation: Partitions and timeouts cause duplicate writes precisely when consistency matters.




SOFTWARE UPDATES

S.1 (Auto-Update):

“Silent updates get loud precisely when you’re demoing.”

Context: Unattended patching in production.

Explanation: The lack of a staging gate means the first you know is a broken demo.


S.2 (Dependency Hell):

“A transitive dependency drops support the day before your release.”

Context: Microservices, open-source libraries.

Explanation: You don’t directly import it—so you miss the deprecation notice until CI collapses.


S.3 (Rollback Blackout):

“Rollback scripts fail only after the database migration completes.”

Context: Schema changes in deploys.

Explanation: Forward migration works; reverse doesn’t—and you’re already live.


S.4 (Version Skew):

“Clients and servers speak different protocol versions only under peak load.”

Context: Rolling upgrades in clusters.

Explanation: Under stress, the old node lingers just long enough to reject new requests.




SOFTWARE DESIGN

SD.1 (Leaky Abstraction):

“Every abstraction leaks—especially in production.”

Context: Layered architectures, APIs.

Explanation: Edge cases surface gaps, exposing underlying complexity at the worst time.


SD.2 (Simplest Complexity):

“The simplest design that seems to work always has hidden complexity.”

Context: Early prototyping.

Explanation: You discover unanticipated interactions only when scaling or extending.


SD.3 (Interface Instability):

“Interfaces remain stable until the first extension request.”

Context: Public APIs, library design.

Explanation: Any added feature invalidates previous assumptions, forcing a breaking change.


SD.4 (Pattern Misuse):

“The design pattern you apply most often is the one you misunderstand.”

Context: Architect-driven standards.

Explanation: Copy-paste examples propagate misuse until the codebase groans.


SD.5 (Module Paradox):

“The module with the best test coverage is the one with the most bugs.”

Context: Unit testing metrics.

Explanation: Tests focus on happy paths; edge cases hide in supposedly “covered” code.


SD.6 (Coupling Creep):

“Decoupled components couple themselves under deadline pressure.”

Context: Rapid feature delivery.

Explanation: Quick fixes introduce hidden dependencies that surface later.




USER EXPERIENCE

U.1 (Confirm Dialog):

“The ‘Are you sure?’ you added ensures they’re sure—wrongly.”

Context: Dangerous UI actions.

Explanation: Muscle memory overrides caution; dialog just adds false confidence.


U.2 (Hidden Menu):

“Essential controls hide in the smallest viewport.”

Context: Mobile responsive design.

Explanation: The hamburger menu swallows features when screen real estate is tight.


U.3 (Error Message):

“The only error message shown is ‘Unknown error occurred.’”

Context: Exception handling.

Explanation: Developers log detailed stack traces—but users see nothing actionable.


U.4 (Help Tooltip):

“Help appears only after you give up.”

Context: On-hover or focus tooltips.

Explanation: The moment you need guidance, the tooltip vanishes because you moved the mouse.


U.5 (Easy Parts):

“The parts of the software that seem easiest always prove the most difficult.”

Context: Estimation and planning.

Explanation: Hidden edge cases lurk in seemingly trivial features, inflating effort.


U.6 (Context Loss):

“Users lose context exactly when they need it most.”

Context: Multi-step workflows.

Explanation: Navigation breaks or session timeouts erase state at critical junctures.




SECURITY & PRIVACY

P.1 (Credential Leak):

“Secrets hide in the repo you forgot to .gitignore.”

Context: Git-backed configs.

Explanation: One errant commit undoes vault and KMS protections.


P.2 (Zero-Day Timing):

“Critical exploit drops five minutes before your weekend.”

Context: Vulnerability disclosures.

Explanation: Attackers maximize downtime by hitting off-hours.


P.3 (Permission Creep):

“Every new feature accrues more privileges until none are needed.”

Context: ACLs and roles.

Explanation: Teams grant broad rights “just this once” and never revoke them.


P.4 (2FA Fatigue):

“Users bypass 2FA when you ask one time too many.”

Context: Multi-factor authentication.

Explanation: Repeated prompts train users to approve everything reflexively.


P.5 (Config Exposure):

“The one log you left enabled prints all your secrets.”

Context: Debug logging in production.

Explanation: Verbose logs expose tokens precisely when you need audit trails.




DATA & ANALYTICS

D.1 (GIGO 2.0):

“Your dashboard is only as fresh as the last silent pipeline failure.”

Context: ETL jobs, data lakes.

Explanation: Unalerted failures freeze metrics without warning.


D.2 (Schema Drift):

“Data contracts change in production the moment you code against them.”

Context: Producer/consumer services.

Explanation: Non-versioned schemas shift, breaking consumers at runtime.


D.3 (Analytics Delay):

“Real-time analytics lag by exactly one business-critical spike.”

Context: Streaming pipelines.

Explanation: Batching and windowing hide the very event you must see.


D.4 (Retention Roulette):

“Data you need expired just before you think to ask for it.”

Context: Retention policies, GDPR.

Explanation: Automated purges catch the one record you forgot to archive.


D.5 (Metric Overload):

“The more metrics you collect, the less you know.”

Context: Observability dashboards.

Explanation: Noise drowns signal; critical alerts vanish in the flood.




AI & AUTOMATION

A.1 (Hallucination):

“AI confidence inversely tracks its correctness.”

Context: LLMs in production.

Explanation: High perplexity leads to fabricated yet confident answers.


A.2 (Scaling Oscillation):

“Autoscaling flips under peak load, then flips back when recovery begins.”

Context: Reactive scaling policies.

Explanation: Metric lag perpetuates the spike you tried to buffer.


A.3 (Feedback Loop):

“Automated tuning optimizes for yesterday’s workload, not today’s crisis.”

Context: ML-driven auto-tuning.

Explanation: The system chases obsolete patterns, ignoring the current anomaly.


A.4 (Script Snap):

“Your automation script runs flawlessly—until you need manual override.”

Context: DevOps pipelines.

Explanation: The one time you pause the pipeline, hidden dependencies execute out of order.


A.5 (LLM Productivity Paradox):

“Using LLMs decreases your productivity.”

Context: AI assistance in writing, coding.

Explanation: Time spent verifying, editing, and prompt-engineering outweighs raw generation speed.


A.6 (LLM Hallucination on Criticals):

“LLMs always hallucinate when working on important stuff.”

Context: High-stakes content generation.

Explanation: The more critical the task, the more inventive the fabrications.


A.7 (Automation Debt):

“Automate everything—and inherit a mountain of brittle scripts.”

Context: Growth of CI/CD and IaC.

Explanation: Each automation needs maintenance; unmaintained scripts rot.




SOFTWARE ENGINEERING PRACTICES

SE.1 (Code Review Paradox):

“Code reviews catch trivial issues and miss the critical ones.”

Context: Peer review processes.

Explanation: Reviewers focus on style; deep logic flaws slip by.


SE.2 (Test Flakiness):

“Automated tests pass only when they aren’t running in CI.”

Context: Continuous integration.

Explanation: Environment differences make tests brittle under pipeline constraints.


SE.3 (Friday Breakage):

“The CI pipeline breaks only on Fridays.”

Context: Weekly release cadence.

Explanation: Accumulated changes collide at week’s end when attention wanes.


SE.4 (Debt Interest):

“Technical debt accrues interest when you’re too busy to pay it down.”

Context: Sprint planning.

Explanation: Shortcuts compound into larger refactoring tasks later.


SE.5 (Documentation Rot):

“Documentation is current only until the first code change.”

Context: API docs, design docs.

Explanation: Code evolves; prose does not—until you desperately need accuracy.


SE.6 (Build Heisenbug):

“The build succeeds only when you don’t need to demo the feature.”

Context: Release readiness.

Explanation: The act of observing (demoing) changes timing, revealing hidden race conditions.


SE.7 (Merge Conflict Peak):

“Merge conflicts escalate when multiple people edit the same ‘trivial’ line.”

Context: Git workflows.

Explanation: Small changes to shared files collide disproportionately.




SOCIAL & COLLABORATION

C.1 (Reply-All):

“If more than two are CC’d, someone will hit Reply-All with ‘Thanks!’.”

Context: Email threads.

Explanation: Politeness overrides sense—until inboxes drown.


C.2 (Meeting Fail):

“Video dies only when the CEO speaks.”

Context: Virtual meetings.

Explanation: The one moment you can’t switch to audio is when visibility matters most.


C.3 (Doc Lock):

“Collaborative docs lock themselves when you must edit.”

Context: Google Docs, Office 365.

Explanation: Sync conflicts appear only during your final revisions.


C.4 (Notification Overload):

“Your urgent ping gets lost in the ‘Do Not Disturb’ avalanche you set up.”

Context: Chat apps, notification filters.

Explanation: The safeguards you build to focus become the barrier to critical alerts.




PERSONAL PRODUCTIVITY & MANAGEMENT

M.1 (Time Scarcity):

“The less time you have for your work, the more work you get—and vice versa.”

Context: Task overload, Parkinson’s Law inversions.

Explanation: Crunched schedules attract ad-hoc requests; free time gets reallocated to others’ priorities.


M.2 (After-Hours Work):

“The more you work during work hours, the more work you’ll have to complete in your spare time.”

Context: Overtime and spillover.

Explanation: Effort begets more requests; visible busyness becomes the norm.


No comments: