AntiPatterns

SHEET · WHAT'S AN ANTIPATTERN

What's an AntiPattern?

Complex problems, oversimplified: the recurring temptation
Complex problems, oversimplified: the recurring temptation

In 1998, we wrote:

AntiPatterns represent the latest concept in a series of revolutionary changes in computer science and software engineering thinking. As we approach the 50-year mark in developing programmable digital systems, the software industry has yet to resolve some fundamental problems in how humans translate business concepts into software applications.

The emergence of design patterns has provided the most effective form of software guidance yet available, and the whole patterns movement has gone a long way toward codifying a concise terminology for sophisticated computer science thinking.

The principal reason we write software is to solve specific problems, but it's also true that these solutions frequently leave us worse off than before we started. Academic researchers and practitioners have developed thousands of approaches to building software, new technologies and new processes, but with all that invention, the odds of success for a practicing manager or developer are grim.

A survey of hundreds of corporate software development projects found that five out of six were considered unsuccessful. About a third were canceled outright. The remaining projects delivered software that typically cost twice the expected budget and took twice as long as planned. These repeated failures, or "negative solutions," turn out to be valuable precisely because they show us what doesn't work, and why. That study, in the vernacular of design patterns, is the study of AntiPatterns.

Update, 2026

Twenty-eight years later, the tools are unrecognizable. GitHub didn't exist yet. Neither did the cloud, or the phone in your pocket, or a model that will write the next fifty lines before you finish typing the comment describing them. AI coding assistants, agentic IDEs, one-click deploys to a fleet you'll never see: all real, all useful, all arrived since that paragraph was typed.

None of it touched the paragraph. The tools translate business concepts into software faster now. They still don't translate them correctly on their own, and the same AntiPatterns that showed up in 1998 show up in 2026, wearing new names. A Blob is still a Blob when an AI wrote it. A Lava Flow moves faster when a coding agent can generate the next layer of dead code in nine seconds instead of nine weeks. Vendor Lock-In doesn't care whether the vendor sells a database or a model.

The tools changed the speed of the mistake. They didn't change the mistake.

© Copyright 2017–2026 William Brown, Raphael Malveau, Hays McCormick, Thomas Mowbray, and Scott W. Thomas. All rights reserved.
For problems or questions regarding this web contact [Web Master].
Last updated: September 12, 2026
View the 1999 site — Nostalgia ↗