Un antipatrón es cualquier actividad que se repite a pesar de ser contraproducente. Aunque el término se originó y ganó un uso generalizado en el campo de la programación de computadoras, puede aplicarse a cualquier forma de comportamiento rutinario. Identificar y describir antipatrones puede mejorar la racionalidad general al hacer que los errores comunes en el razonamiento sean más fáciles de detectar. En este sentido, el antipatrón es la racionalidad general como la falacia es la lógica deductiva.
Para que un lote de código o un conjunto de comportamientos constituyan un antipatrón, debe ocurrir repetidamente. Para algunos observadores, también debe contrastarse con un patrón conocido que casi con certeza funcionaría mejor. Por tanto, los errores aislados no pueden ser antipatrones, ni tampoco los intentos fallidos de resolver un problema para el que todavía no existe una solución. Esta definición todavía deja espacio para una amplia gama de procesos defectuosos.
Incluso dentro de la categoría original de diseño de software, existen muchos tipos diferentes de antipatrón. Algunas involucran fallas para anticipar las reacciones de los usuarios. “Inflamación de la interfaz” y “Característica progresiva” —casi todos los antipatrones tienen nombres lindos— se refieren a un programa con una interfaz de usuario tan complicada que se vuelve inmanejable.
Otros antipatrones implican errores típicos de programación. “Copiar y pegar programación” y “Programación de Cargo Cult” describen situaciones en las que los programadores dependen demasiado del material preexistente en lugar de adaptar su código al programa que están desarrollando actualmente. «God Class» es un conjunto de objetos dentro de un programa que se han vuelto demasiado poderosos; todo es vulnerable porque todo depende de estos elementos.
También se han identificado muchos antipatrones en el mundo empresarial, especialmente como contexto para el desarrollo de software. “No especificar nada” y “Guerra de Vietnam” implican fallas de claridad en las instrucciones de la gerencia a sus empleados. “Somos idiotas” implica asumir que los clientes, y no los programadores, deben tomar todas las decisiones sobre cómo se desarrolla un elemento en particular.
Otros antipatrones pueden aplicarse a muchos tipos de sociología organizacional. El “pensamiento de grupo” se lleva a cabo siempre que un conjunto de personas es capaz de sostener un engaño colectivo aislándose de la información externa. Una “Marcha de la Muerte” ocurre cuando todos los que trabajan en un proyecto en particular saben que el fracaso es inevitable, pero no pueden o no pueden comunicar esta información a un líder poderoso. “Si no está roto, no lo arregles” es una pieza de sabiduría convencional que puede ser un antipatrón en contextos donde un eventual colapso sería inaceptable.