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
- Slang (21 terms in common)
- Architecture (3 terms in common)
- Algorithm Analysis (3 terms in common)
- Growth (2 terms in common)
- Algorithms (2 terms in common)
- Legacy Systems (2 terms in common)
- Feature Flags (2 terms in common)
- Foundational (2 terms in common)
- Engineering Culture (1 terms in common)
- Navigation (1 terms in common)
- Solutions (1 terms in common)
- Teams (1 terms in common)
- Software Culture (1 terms in common)
- Code Quality (1 terms in common)
- Software Myths (1 terms in common)
- Asymptotic Notation (1 terms in common)
- Rbac (1 terms in common)
- Large Systems (1 terms in common)
- Design (1 terms in common)
- Overgrowth (1 terms in common)