There are instances where individuals or groups make a choice to address a problem, where that choice proves to be ineffective at best, and does more harm than good, at worst. The term anti-pattern is a general way to call out that sort of situation, where a choice has largely negative consequences. In software development, a design pattern represents an approach that has been proven to be in effective. By way of contrast, an anti-pattern in software development is characterized by a bad “design smell,” in that the design choice results in things such as accumulation of technical debt or high frequency of software defects. Credit for early usage of the term anti-pattern in software development goes to Andrew Koenig, who first used the term in a paper published in 1995, in The Journal of Object Oriented Programming. (1)
(1) Koenig’s paper was subsequently reprinted in The Patterns Handbook, edited by Linda Rising.
Authored by Steve Moubray
Edited by Philip Rogers
Agile World Resources are provided as free resources to anyone seeking to learn more and are shared under a creative commons attribution license. This means if you use a resource elsewhere you must name Agile World Publishing as the source, who the author is, and the photo creator (if used).