anti-pattern
アンチパターン
Social and business operations
Organizational
analysis paralysis
A project that has stalled in the analysis phase of development, and is unable to achieve support for any of the potential plans of its implementation
bicycle shed
Giving disproportionate weight to trivial issues
bleeding edge
Operating with cutting-edge technologies that are still untested or unstable, leading to cost overruns, under-performance or delayed delivery of the product
bystander apathy
The phenomenon in which people are less likely to or do not offer help to a person in need when others are present
cash cow
A profitable legacy product that often leads to complacency about new products
design by committee
The result of having many contributors to a design, but no unifying vision
escalation of commitment
Failing to revoke a decision when it proves wrong
groupthink
A collective state where group members begin, often unknowingly, to think alike and reject differing viewpoints
management by objectives
Management operating with the exclusive focus on quantitative management criteria, such as number of sales, when these are non-essential or cost too much to acquire
micromanagement
Ineffective results stemming from excessive observation, supervision, or other hands-on involvement from management
moral hazard
Insulating a decision-maker from the consequences of their decision
mushroom management
Keeping employees "in the dark and fed manure" (also "left to stew and finally canned") about decisions being taken by management
Peter principle
Continually promoting otherwise well-performing employees up to a position they are unsuited for, with responsibilities they are incompetent at completing, where they remain indefinitely
seagull management
Management in which managers only interact with employees when a problem arises, when they "fly in, make a lot of noise, dump on everyone, do not solve the problem, then fly out"
Stovepipe or Silos
An organizational structure of isolated or semi-isolated teams, in which too many communications take place up and down the hierarchy, rather than directly with other teams across the organization
typecasting
Locking successful employees into overly-safe, narrowly defined, predictable roles based on their past successes rather than their potential
vendor lock-in
Making a system excessively dependent on an externally supplied component
Project management
cart before the horse
Focusing too many resources on a stage of a project out of its sequence
death march
A project whose staff, while expecting it to fail, are compelled to continue, often with much overwork, by management in denial of the project's possible failure
Ninety-ninety rule
Tendency to underestimate the amount of time to complete a project when it is "nearly done"
overengineering
Spending resources making a project more robust and complex than is needed
scope creep
Uncontrolled changes or continuous growth in a project's scope, or adding new features to the project after the original requirements have been drafted and accepted (also known as requirement creep and feature creep)
smoke and mirrors
Demonstrating unimplemented functions as if they were already implemented
Brooks's law
Adding more resources to a project to increase velocity, when the project is already slowed by coordination overhead
gold plating
Continuing to work on a task or project well past the point at which extra effort is not adding value
Software engineering
Software design
abstraction inversion
Not exposing implemented functionality required by callers of a function/method/constructor, so that the calling code awkwardly re-implements the same functionality in terms of those calls
ambiguous viewpoint
Presenting a model (usually Object-oriented analysis and design (OOAD)) without specifying its viewpoint
big ball of mud
A system with no recognizable structure
Database-as-IPC
Using a database as the message queue for routine interprocess communication where a much more lightweight mechanism would be suitable
inner-platform effect
A system so customizable as to become a poor replica of the software development platform
input kludge
Failing to specify and implement the handling of possibly invalid input
interface bloat
Making an interface so powerful that it is extremely difficult to implement
magic pushbutton
A form with no dynamic validation or input assistance, such as dropdowns
race hazard
Failing to see the consequences of events that can sometimes interfere with each other
stovepipe system
A barely maintainable assemblage of ill-related components
Object-oriented programming
anemic domain model
The use of the domain model without any business logic. The domain model's objects cannot guarantee their correctness at any moment, because their validation and mutation logic is placed somewhere outside (most likely in multiple places). Martin Fowler considers this to be an anti-pattern, but some disagree that it is always an anti-pattern.
call super
Requiring subclasses to call a superclass's overridden method
circle–ellipse problem
Subtyping variable-types on the basis of value-subtypes
circular dependency
Introducing unnecessary direct or indirect mutual dependencies between objects or software modules
constant interface
Using interfaces to define constants
God object
Concentrating too many functions in a single part of the design (class)
object cesspool
Reusing objects whose state does not conform to the (possibly implicit) contract for re-use
object orgy
Failing to properly encapsulate objects permitting unrestricted access to their internals
poltergeists
Objects whose sole purpose is to pass information to another object
sequential coupling
A class that requires its methods to be called in a particular order
Singleton Pattern
This design pattern brings coupling and is considered a bad solution
yo-yo problem
A structure (e.g., of inheritance) that is hard to understand due to excessive fragmentation
Programming
accidental complexity
Programming tasks which could be eliminated with better tools (as opposed to essential complexity inherent in the problem being solved)
action at a distance
Unexpected interaction between widely separated parts of a system
boat anchor
Retaining a part of a system that no longer has any use
busy waiting
Consuming CPU while waiting for something to happen, usually by repeated checking instead of messaging
caching failure
Forgetting to clear a cache that holds a negative result (error) after the error condition has been corrected
cargo cult programming
Using patterns and methods without understanding why
coding by exception
Adding new code to handle each special case as it is recognized
design pattern
The use of patterns has itself been called an anti-pattern, a sign that a system is not employing enough abstraction
error hiding
Catching an error message before it can be shown to the user and either showing nothing or showing a meaningless message. This anti-pattern is also named Diaper Pattern. Also can refer to erasing the Stack trace during exception handling, which can hamper debugging.
hard code
Embedding assumptions about the environment of a system in its implementation
lasagna code
Programs whose structure consists of too many layers of inheritance
lava flow
Retaining undesirable (redundant or low-quality) code because removing it is too expensive or has unpredictable consequences
loop-switch sequence
Encoding a set of sequential steps using a switch within a loop statement
magic number
Including unexplained numbers in algorithms
magic string
Implementing presumably unlikely input scenarios, such as comparisons with very specific strings, to mask functionality.
repeating yourself
Writing code which contains repetitive patterns and substrings over again; avoid with once and only once (abstraction principle)
shooting the messenger
Throwing exceptions from the scope of a plugin or subscriber in response to legitimate input, especially when this causes the outer scope to fail.
shotgun surgery
Developer adds features to an application codebase which span a multiplicity of implementors or implementations in a single change
soft code
Storing business logic in configuration files rather than source code
spaghetti code
Programs whose structure is barely comprehensible, especially because of misuse of code structures
Methodological
copy-and-paste programming
Copying (and modifying) existing code rather than creating generic solutions
golden hammer
Assuming that a favorite solution is universally applicable (See: Silver bullet)
invented here
The tendency towards dismissing any innovation or less than trivial solution originating from inside the organization, usually because of lack of confidence in the staff
not invented here syndrome
The tendency towards reinventing the wheel (failing to adopt an existing, adequate solution)
premature optimization
Coding early-on for perceived efficiency, sacrificing good design, maintainability, and sometimes even real-world efficiency
programming by permutation (or "programming by accident", or "programming by coincidence")
Trying to approach a solution by successively modifying the code to see if it works
reinventing the square wheel
Failing to adopt an existing solution and instead adopting a custom solution which performs much worse than the existing one
Silver bullet
Assuming that a favorite technical solution can solve a larger process or problem
tester-driven development
Software projects in which new requirements are specified in bug reports
Configuration management
dependency hell
Problems with versions of required products
DLL hell
Inadequate management of dynamic-link libraries (DLLs), specifically on Microsoft Windows
extension conflict
Problems with different extensions to classic Mac OS attempting to patch the same parts of the operating system
JAR hell
Overutilization of multiple JAR files, usually causing versioning and location problems because of misunderstanding of the Java class loading model
code smell – symptom of unsound programming
design smell
Dark pattern
List of software development philosophies – approaches, styles, maxims and philosophies for software development
List of tools for static code analysis
software rot
software Peter principle
Capability Immaturity Model
ISO/IEC 29110: Software Life Cycle Profiles and Guidelines for Very Small Entities (VSEs)
The Innovator's Dilemma
Programming-anti-patterns
OOD-anti-patterns
Design-anti-patterns
Methodological-anti-patterns
Organisational-anti-patterns
Software-Development-AntiPattern
Software-Architecture-AntiPattern
Project-Management-AntiPattern
https://wiki.c2.com/?AntiPattern
/suto3/google.iconanti-pattern
image anti-pattern
define anti-pattern
wikipedia anti-pattern
weblio anti-pattern
kotobank anti-pattern
jisho anti-pattern
? (AntiPattern|anti pattern)
anti-pattern-icon
https://scrapbox.io/api/pages/suto3/anti-pattern-icon/icon#.svg