Brief Site Map Original Link New Brief 8/13/97, 2:19:5PM by NetAttaché Light


AntiPatterns

AntiPatterns

An anti-pattern is either...

The first seems particularly useless except as a place holder for the message don't do this. The second is really a positive pattern where the problem is stated as a bad solution (e.g., FunctionalInversion).

DaveSmith has noted that many anti-patterns come from a CorrectiveAction gone awry.


AndrewKoenig first proposed AntiPatterns to me quite some time ago, and I think he's working on a C++Report anti-patterns article.

I am working on some organizational anti-patterns. I define an anti-pattern as something that looks like a good idea, but which backfires badly when applied. (It's no fun documenting the things that most people agree won't work.) These are my favoirte ProcessAntiPatterns ...

Whereas good patterns are soothing and satisfying and have a good sense of catharsis, I find that the best anti-patterns are cynical or comical.

The study of anti-patterns is an important research activity. The presence of "good" patterns in a successful system is not enough; you also must show that those patterns are absent in unsuccessful systems. Likewise, it is useful to show the presence of certain patterns (anti-patterns) in unsuccessful systems, and their absence in successful systems. -- JimCoplien


A few classic anti-patterns are

Like most patterns, anti-patterns can be misused. But when you misuse anti-patterns, things turn out well! -- RonJeffries


I've been thinking about some specific Smalltalk coding anti-patterns as a result of reading Kent's SmalltalkBestPracticePatterns. Some of them would be ...

And here's one that's about design more than coding ...

-- KyleBrown


... have popped out as anti-patterns in my noodlings regarding teams and organizations. It seems like a rich vein to follow for PatternsMiners, maybe even the mother lode, given the number of projects gone awry in the software world. To paraphrase Edward Abbey[1] rather liberally, "There's no situation so bad that an anti-pattern can't make it worse." -- DonOlson


-- MarkEichin


I find it interesting that the original author's initial description of an anti-pattern discards the meaning of ''a bad pattern to follow'' and seems (in my opinion) to ask for patterns of the second kind, and yet all of the responses are with patterns of the first kind.

In my continual effort to put my foot in it (especially when without towel), I've advanced an anti-pattern in the second sense. Given the unanimous response that "anti-pattern" has the first meaning, however, I'll call it (till shouted down) an Amelioration Pattern: FunctionalInversion. (Clearly, there are only so many streams I'm willing to buck -- the first meaning of anti-pattern wins.) -- ChuckSiska


Why not call an anti-pattern(2) a AikidoPattern?? You're using a set of forces in a way not foreseen by the force's provider to reach a positive solution. -- BetsyHanesPerry


It's an expressed consideration of Aikido to preserve the well-being of the attacker. I don't know much about Judo. Aikido is a defensive technique; I can guess that Judo is too: am I right? But isn't it one of the goals of Judo to do bodily harm to the opponent? In Aikido, you avoid bodily harm. You balance the forces, not obliterate them.

FrankBuschmann and I were talking about this once and he came up something pretty profound, whose details I no longer remember. It goes something like this: Aikido is "one mind, one body." You must know the mind of your adversaries, and must blend your movements with theirs. Judo is "one mind, two bodies": you still must know your opponents' mind, and you still use your opponents' intents and forces against them, but you don't preserve their safety as though it were your own body. -- JimCoplien


Bruce Webster has written a book called:

"Pitfalls of Object-Oriented Development"
M&T Books, 1995 [2] ISBN 1-55851-397-3 (Order from this AmazonAssociate)

that really is a catalog of AntiPatterns in the making. He describes bad situations, tells you how to recognize the signs, and what you can do (and sometimes the 'what you can do' = update your resume!). I found it to be one of those books that covers a lot of those things that you don't really think about until they're there -- spelled out in front of you in black and white.

I've got to buy another copy; someone borrowed it from me, then someone borrowed it from them.... a sure sign of a good book! Anyone else read this & recognized the AntiPatterns in there? -- AshleyEngelund


And what about the infamous NotInventedHere behavioural pattern?? -- RobertPhillips


I put in a vote that the AntiPattern? template include a section to say what is wrong with it. I find myself reading some of these anti-patterns and (a) forgetting half-way through that it is an anti-pattern, and start reading it as a positive pattern, (b) trying to figure out what is wrong with it, and not doing very well. I can't tell if the Rationale is the "pseudo-rationale which a faulty thinker would think causes this to be a valid pattern", or "the rationale about why this is an anti-pattern". -- AlistairCockburn


CategoryAntiPattern


EditText of this page (last edited June 3, 1997)
FindPage by browsing or searching

| Brief Summary | Site Map| Original Link | NetAttaché(TM) Light