I've been reading "Antipatterns - Refactoring Software, Architectures, and Projects in Crisis", after a friend leant me a copy and said I would enjoy it.
Before reading this I had never heard of an anti-pattern, I had heard of patterns ( mainly through curosity after I began to notice a trend whereby any old project that involved a degree of seperation between layout and content claimed to follow the "MVC" philosophy ).
AntiPatterns refer to common practices or software architectures that come into being due to either insufficient or misguided influences during a project life cycle( An analagous situation is where people hide there money in the cookie jar, or under the mattrees, because they imagine that no-one else would have thought of that ). - see
The AntiPatterns have names such as "StovePipe system", "Golden Hammer", and one everyone must have heard of "Spaghetti Code". The book is quite damning in places, but ( I feel at least ) that the negativity is largley justifiable, and adds to the pleasure of reading. Some of the symptoms and anecdotal evidence used ( such as "We're not sure what this bit does, it was written by thingy who left the company a couple of years back" ) adds to the quality and depth of the presentation of the material
A book containing just the descriptions, symptoms and causes of these patterns, illustrated by dilbert, as this one is would be a good read in its own right, but this book goes further ( hence the refactoring bit in its subtitle ), to suggest ways and means of addressing some of the issues raised in the antipatterns.
All in all its a good read. Some sections ( Lavacode for example ) brought back memories of frustrations gone by, and I find it strangley reassuring to know that some of the flaws I have percieved in systems that I have worked upon are recognised, catagorised and documented. If you can find a copy it's well worth a read.