An anti-pattern 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.