Complexity Glossary

Browse 41 complexity terms defined in plain English, from the cultural dictionary of computing.

41 Complexity Terms

Amortized Analysis
Amortized Analysis is a technique in algorithm analysis that determines the average performance of each operation over a worst-case sequence of operations,...
Big-O
Big-O notation is a mathematical notation that describes the upper bound of an algorithm's time or space complexity as the input size grows, abstracting away...
Big-O Notation
A mathematical notation describing the upper bound of an algorithm's time or space complexity as input size grows. O(1) is constant, O(log n) is logarithmic,...
Big Theta
Asymptotic notation (Θ) that provides a tight bound on a function's growth rate, meaning the function grows both no faster and no slower than the given rate....
Boolean Driven Development
A joking term for building product behavior by piling on booleans, flags, and conditional branches instead of designing cleaner state models. In engineering...
Code Beast
A joking label for a huge, unruly, or intimidating codebase or subsystem. In engineering slang, calling something a code beast usually means it is powerful...
Code Chaos
A state where the codebase feels disordered, hard to predict, and difficult to change safely. In engineering slang, code chaos suggests problems with...
Code Cliff
A sudden steep jump in difficulty or complexity inside a codebase, where simple understanding gives way to hard-to-follow internals. In engineering slang, a...
Code Complexity
The degree to which code is difficult to understand, reason about, test, or modify due to branching, coupling, state, or structural depth. High code complexity...
Code Complexity Culture
The way a team collectively tolerates, rewards, reduces, or ignores code complexity over time. The phrase is useful when messy systems are less about...
Code Entropy
The tendency of codebases to become more disordered, inconsistent, and complex over time unless energy is invested to keep them clean. In engineering slang,...
Code Explosion
A sudden large increase in code volume, branching behavior, or moving parts that makes a system much harder to reason about. In engineering slang, a code...
Code Jungle
A dense, overgrown codebase where finding a path through dependencies and behaviors is difficult. In engineering slang, a code jungle has lots of life in it,...
Code Labyrinth
A code structure so twisty, layered, and indirect that understanding it feels like trying to escape a maze. In engineering slang, code labyrinth implies...
Code Spiral
A worsening loop where each fix, workaround, or new layer of complexity creates the need for more of the same. In engineering slang, a code spiral is the path...
Cognitive Overhead
The mental effort required just to hold a system, workflow, or set of constraints in mind before any productive work can even start. In engineering slang,...
Complexity Budget
The idea that a team or system can tolerate only so much complexity before maintainability, speed, or reliability starts to degrade sharply. Treating...
Emergence
The appearance of higher-level behaviors or capabilities that are not obvious from inspecting individual components alone and may become visible only at...
Enterprise Tax
The extra time, cost, and complexity imposed by enterprise requirements such as compliance, integration, approval, support, and customization obligations. In...
Exploding Complexity
A rapid increase in complexity caused by combinatorial states, coupled systems, or too many conditionals and exceptions. In engineering slang, exploding...
Feature Bloat
The gradual growth of a product or system through too many features, options, and edge-case accommodations. In engineering slang, feature bloat is what happens...
Framework Hell
A painful situation where frameworks impose too much ceremony, hidden behavior, upgrade pain, or conflicting abstraction. In engineering slang, framework hell...
Integration Hell
A miserable state caused by mismatched systems, awkward contracts, poor docs, brittle auth, and all the other pains of making separate things work together. In...
In the Weeds
Too deep in low-level detail to maintain perspective on the bigger problem or decision. It is often used in meetings when implementation specifics start...
Microservice Hell
A painful distributed architecture state where service boundaries, ownership, networking, and observability multiply complexity faster than the organization...
No Silver Bullet
A phrase from Fred Brooks’s famous essay arguing that no single technology or method can produce an order-of-magnitude improvement in software productivity...
NP-Completeness
A class of problems where: (1) a proposed solution can be verified quickly (in polynomial time), but (2) no known algorithm can find a solution quickly. All...
Over-Engineering
The habit of designing a system with more abstraction, scalability, flexibility, or machinery than the actual problem requires. In software, over-engineering...
Role Explosion
A situation in which a role-based access control system accumulates too many narrow, overlapping, or exception-driven roles to manage effectively. Role...
Silver Bullet
A supposed single solution that will solve a difficult, multi-dimensional technical problem all at once. In software discussions, the term is usually used...
Simple Is Hard
A reminder that elegant simplicity usually takes more thought and discipline than piling on features or abstractions. In engineering slang, it is often said...
Software Crisis
A historical term from the 1960s and 1970s describing the growing gap between what software systems needed to do and teams’ ability to build them reliably, on...
Software Jungle
A codebase or system so overgrown with dependencies, paths, and exceptions that navigating it feels hazardous. In engineering slang, a software jungle resists...
Space Complexity
A measure of the amount of memory an algorithm requires as a function of input size. Distinct from time complexity — some problems can be solved in polynomial...
Spaghetti Junction
A dense tangle of dependencies, routes, or control flow that has become hard to trace because too many paths intersect in one place. It is an extension of the...
Spaghetti Monster
An especially tangled system or code path whose complexity has become almost mythical. In engineering slang, the spaghetti monster is what people invoke when...
Stack Depth
The number of layers, calls, or abstractions between an action and its underlying effect. In engineering slang, too much stack depth usually means slower...
State Explosion
A rapid growth in the number of possible states or interactions a system can enter, making reasoning, testing, and verification much harder. It often appears...
Tarpit
A system, design, or environment that is easy to enter but difficult to escape because of hidden complexity, lock-in, or endless edge cases. In security, a...
Toggle Hell
A state where too many feature flags and conditional behaviors make systems hard to reason about or test. In engineering slang, toggle hell is what happens...
Tower of Babel Codebase
A codebase with too many languages, styles, conventions, or paradigms layered together, making it difficult to reason about as a whole.

Related Topics