An
anti-pattern (or
antipattern) is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive. The term, coined in 1995 by
Andrew Koenig, was inspired by a book,
Design Patterns, which highlights a number of
design patterns in
software development that its authors considered to be highly reliable and effective.