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
- Culture (6 terms in common)
- Performance (3 terms in common)
- Code Quality (2 terms in common)
- Process (2 terms in common)
- Code Review (2 terms in common)
- Decision (2 terms in common)
- Sre (2 terms in common)
- Wisdom (2 terms in common)
- Meetings (1 terms in common)
- Configuration (1 terms in common)
- Ritual (1 terms in common)
- Product (1 terms in common)
- Architecture (1 terms in common)
- Javascript (1 terms in common)
- Requirements (1 terms in common)
- Dependency Injection (1 terms in common)
- Project Management (1 terms in common)
- Ci/Cd (1 terms in common)
- Package Management (1 terms in common)
- Fragile (1 terms in common)