MURPHY’S META LAW
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:
Post a Comment