Definition
An Anti-Pattern describes a commonly occurring solution to a problem that generates decidedly negative consequences.
You would think that an IT book written in 1998 would be grossly out of date by now. The book Anti-Patterns: Refactoring Software, Architectures, and Projects in Crisis by Brown, Malvau and McCormick is unfortunately as relevant today as its publication date 13 years ago. At its core is the argument that by understanding BAD implementations or patterns, we can learn to avoid them and be more successful.
The book postulates that there are 3 core types of Anti-Patterns: (links to the Anti-Patterns site below for full descriptions)
Also that these Anti-Patterns exist because of 8 main reasons. Again, the reasons are as relevant today as yesterday.
- Haste
- Architectural Apathy
- Narrow-mindedness
- Sloth
- Architectural Avarice *modeling of excessive details
- Ignorance
- Pride
- External Forces
They identified 14 Anti-Patterns for Development. They are summarized as:
- The Blob
- Continuous obsolescence
- Lava Flow
- Ambiguous viewpoint
- Functional decomposition
- Poltergeists
- Boat Anchor
- Golden Hammer
- Dead End
- Spaghetti Code
- Input Kludge
- Walking through a Minefield
- Cut-and-Paste Programming
- Mushroom Management
Definitions here
Recognize the “Golden Hammer” Anti-Pattern in your world? Where there is a favourite technology that is used and reused, even in ways it was never intended. Why not ask your client how many business critical applications they have running in Microsoft Excel or Access? (or at least the ones they know about …)
They also identified the following 13 Architectural Anti-Patterns:
- Autogenerated Stovepipe
- Stovepipe Enterprise
- Jumble
- Stovepipe System
- Cover Your Assets
- Vendor Lock-in
- Wolf Ticket
- Architecture By Implication
- Warm Bodies
- Design By Committee
- Kitchen Sink
- Reinvent the Wheel
- The Grand Old Duke of York
Recognize the “Kitchen Sink” architecture Anti-Pattern? Where every possible piece of technology is included to account for all possible and improbable uses of the architecture.
They also identified 14 Management Anti-Patterns
- Blowhard Jamboree
- Analysis Paralysis
- Viewgraph Engineering
- Death By Planning
- Fear of Success
- Corncob
- Intellectual Violence
- Irrational Management
- Smoke and Mirrors
- Project Mismanagement
- Throw it over the Wall
- Fire Drill
- The Feud
- E-mail is dangerous
Definitions: here..
- Stress
- Personality
- Hidden agendas
- Negative training or background
- Defensiveness: fear of the unknown or
- Intellectual arsenic: obsession with a pet ideas or people
As you go through the Anti-Patterns list you will see that today all of them still exist in today’s IT environment. Our challenge is to recognize them and mitigate the impact of them to ensure our client’s project success.
Anti-Patterns – It is still worth the read.