This was very nearly a good book. Software patterns have caught the OO programming community's imagination, as a way of documenting and talking about and reapplying standard workable design solutions to common design problems. AntiPatterns is supposed to do the same thing for common mistakes, and how to solve them.
But where I was riveted by the GoF's Design Patterns, and couldn't wait to start applying what I had learned, AntiPatterns left me feeling let down. The early material, about the AntiPattern language, is rather waffly and repetitious and had me skimming. The whole book could have done with a thorough editing: there is a lot of repetition, and many typos.
Then the antipatterns themselves, except maybe for one or two, seem rather trivial, with trivial solutions (problem: this is bad management; solution: don't do it) or very well-known with impossible solutions (problem: this is bad management; solution: reorganise the company and change its culture). Maybe I find it less useful than I had hoped because it puts a lot of emphasis on management problems rather than technical problems (after all, that is the cause of most problems!), and I am more naturally interested in things technical. The two AntiPatterns I like most are The Blob (the whole program in one object) and Lava Flow (loads of incomprehensible dead code no-one dares remove, in case it isn't as dead as it looks). But even here the solutions are not terribly exciting: refactor the Blob into several objects; eliminate the dead code.
Also, the style grates in places -- there are many serious requests to "see Figure x-y", where said figure is just a poorly drawn and unilluminating cartoon. So, I will remember The Blob and Lava Flow as useful vocabulary, but for me, that's about it.
All these Patterns and AntiPatterns relate to that often-neglected problem area: Software Configuaration Management. That is, knowing what bits you've got and what you've changed, and being able to reproduce, or even revert to, previous configurations. It also includes some associated material on Process and on Testing.
I found this somewhat more useful than the previous AntiPatterns book, because the identified problems and solutions did not strike me as quite so banal and trite. (The problems identified are indeed very real, and the solutions utterly essential -- but the style does rather tend to obscure this fact.) Many of the previous presentation problems remain, however -- waffle, repetition, and especially those irritating cartoonish but unfunny diagrams.