Anti Pattern Glossary

Browse 29 anti pattern terms defined in plain English, from the cultural dictionary of computing.

29 Anti Pattern Terms

Bikeshedding
Bikeshedding is the tendency for groups to spend disproportionate time and energy debating trivial, easy-to-understand issues while giving insufficient...
Cache Stampede
A failure mode where a popular cache entry expires, causing many concurrent requests to simultaneously hit the database to regenerate it. The sudden load spike...
Callback Hell
Callback Hell, also known as the pyramid of doom, is a code antipattern in asynchronous programming where multiple nested callback functions create deeply...
Cargo Culting
Copying code, architecture, or practices without understanding why they work — like cargo cult islanders building wooden airplanes hoping to attract supply...
Cargo Cult Programming
The practice of copying code patterns, configurations, or rituals from working examples without understanding why they work, hoping the incantation alone will...
Cowboy Coding
Writing and deploying code without process, review, or version control — just you, your editor, and FTP to production. Exhilarating in the moment, catastrophic...
Dependency Hell
The frustrating situation where installing or updating one software package requires specific versions of other packages, which in turn require specific...
Eating Your Own Tail
A situation where a system or process ends up consuming its own output as input in a destructive feedback loop. Also called an ouroboros pattern.
Feature Creep
The ongoing expansion of a product's features beyond its original purpose, often driven by market pressure, competitive anxiety, or a PM who keeps saying 'just...
Flaky Test
A test that intermittently passes and fails without any code change, typically due to race conditions, time dependencies, shared state, or network calls. Flaky...
Friday Deploy
Deploying code changes to production on a Friday — universally regarded as reckless because if something breaks, you either ruin your weekend fixing it or...
Golden Hammer
An anti-pattern where a familiar tool or technique is applied to every problem regardless of fit — 'when all you have is a hammer, everything looks like a...
Hardcoded
A value embedded directly in source code rather than being read from configuration, environment variables, or a database. Sometimes the right call...
Magic Number
A hardcoded numeric literal in code whose meaning is not obvious. 'if (retries > 7)' — why 7? Name it: MAX_RETRIES = 7. Magic numbers are code smells that make...
NIH Syndrome
Not Invented Here syndrome — the tendency to reject or rewrite external solutions in favor of building custom ones, even when mature alternatives exist. Driven...
Not Invented Here
NIH Syndrome — the reluctance to use external solutions and the compulsion to build everything in-house. Sometimes justified (unique requirements), usually...
Premature Abstraction
Creating abstractions, interfaces, or generalized solutions before understanding the actual requirements — the flip side of premature optimization. Often...
Premature Optimization
The act of optimizing code for performance before you know where the actual bottleneck is. Knuth called it 'the root of all evil,' and he wasn't wrong —...
Resume-Driven Development
Choosing technologies or architectures based on what looks good on a resume rather than what's appropriate for the problem. Results in unnecessarily complex...
Retry Storm
A cascading failure where many clients simultaneously retry failed requests, overwhelming an already struggling service and preventing it from recovering —...
Rubber Band Architecture
Rubber Band Architecture describes a software system design that stretches and deforms under pressure but snaps back rather than adapting permanently,...
Rubber Stamp
Rubber Stamp in software development describes a code review practice where a reviewer approves changes without carefully examining them. The reviewer may...
Rubber Stamping
Approving a code review without actually reading the changes — hitting 'approve' based on trust, laziness, or social pressure rather than genuine assessment....
Scope Creep
The gradual, often uncontrolled expansion of a project's requirements beyond its original scope. It starts with 'can we also add...' and ends with the project...
Second System Effect
The tendency for the second version of a system to be over-engineered and bloated because designers include all the features they wished they'd had in the...
Service Locator
A design pattern in which objects obtain their dependencies by querying a central registry at runtime rather than receiving them via constructor injection,...
Spaghetti Code
Source code with a tangled, incomprehensible control flow — typically featuring excessive goto statements, deep nesting, and no discernible structure. The kind...
Thundering Herd
A concurrency problem where a large number of processes or clients are simultaneously woken up or triggered by a single event, causing a massive spike in...
Zombie Project
A project that's not officially cancelled but receives no meaningful investment, resources, or attention — it shambles forward without direction or impact....

Related Topics