AntiPatterns

Refactoring Software, Architecture, and Projects in Crisis

William J. Brown, Raphael C. Malveau, Hays "Skip" W. McCormick III, Thomas J. Mowbray

Publisher: Wiley, 1998, 309 pages

ISBN: 0-471-19713-0

Keywords: Information Systems

Last modified: June 28, 2023, 11:29 p.m.

Are you headed into the software development mine field? Follow someone if you can, but if you're on your own-better get the map! AntiPatterns is the map. This book helps you navigate through today's dangerous software development projects. Just look at the statistics:

  • Nearly one-third of all software projects are cancelled.
  • Two-thirds of all software projects encounter cost overruns in excess of 200%.
  • Over 80% of all software projects are deemed failures.

While patterns help you to identify and implement procedures, designs, and codes that work, AntiPatterns do the exact opposite; they let you zero-in on the development detonators, architectural tripwires, and personality booby traps that can spell doom for your project. Written by an all-star team of object-oriented systems developers, AntiPatterns identifies 40 of the most common AntiPatterns in the areas of software development, architecture, and project management. The authors then show you how to detect and defuse AntiPatterns as well as supply refactored solutions for each AntiPattern presented.

  • Part 1 — Introduction to AntiPatterns
    1. Introduction to patterns and AntiPatterns
      • AntiPatterns: AntiHype
      • The Truths about Software Technology
      • What Is an AntiPattern?
      • Where Did AntiPatterns Come From?
      • Portland Pattern Repository
      • How to Kill a Software Project
      • AntiPatterns Research
      • AntiPatterns: The Book
    2. AntiPatterns Reference Model
      • Viewpoints
      • Root Causes
        • Haste
        • Apathy
        • Narrow-Mindedness
        • Sloth
        • Avarice
        • Ignorance
        • Pride
      • Primal Forces
        • What is a Primal Force?
      • Software Design-Level Model
      • Design Reuse versus Code Reuse
        • Object Level
        • Micro-Architecture Level
        • Framework Level
        • Application Level
        • System Level
        • Enterprise Level
        • Global Level
        • Level Summary
      • Architecture Scale and Primal Forces
    3. Templates for Patterns and AntiPatterns
      • Degenerate Form
        • Degenerate Pattern Form
      • Alexandrian Form
        • Alexandrian Pattern Form
      • Minimal Template (Micro-Pattern)
        • Micro-Pattern Template
      • Mini-Pattern Template
        • Inductive Mini-Pattern
        • Deductive Mini-Pattern
      • Formal Template
        • Gang-of-Four Pattern
        • System of Patterns Template
      • Rethinking the Design Pattern Template
        • CORBA Design Patterns
      • Antipattern Templates
        • Pseudo-Pattern Template
        • Mini-AntiPattern
      • Full-AntiPattern Template
    4. Advice for Using AntiPatterns
      • Dysfunctional Environments
      • AntiPatterns and Change
        • Fixed and Improvisational Responses
      • Writing New AntiPatterns
      • Summary
  • Part 2 — AntiPatterns
    1. Software Development AntiPatterns
      • Software Refactoring
      • Formal Refactoring Transformations
      • Development AntiPatterns Summaries
      • AntiPattern: The Blob
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Applicability to Other Viewpoints and Scales
        • Example
      • Mini-Pattern: Continuous Obsolescence
      • AntiPattern: Lava Flow
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Ambiguous Viewpoint
      • AntiPattern: Functional Decomposition
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • AntiPattern: Poltergeists
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Boat Anchor
      • AntiPattern: Golden Hammer
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
        • Related Solutions
      • Mini-AntiPattern: Dead End
      • AntiPattern: Spaghetti Code
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Example
        • Related Solutions
      • Mini-AntiPattern: Input Kludge
      • Mini-AntiPattern: Walking through a Minefield
      • AntiPattern: Cut-and-Paste Programming
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Example
        • Related Solutions
      • Mini-AntiPattern: Mushroom Management
    2. Software Architecture AntiPatterns
      • Architecture AntiPatterns Summaries
      • Mini-AntiPattern: Autogenerated Stovepipe
      • Antipattern: Stovepipe Enterprise
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Jumble
      • AntiPattern: Stovepipe System
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Cover Your Assets
      • AntiPattern: Vendor Lock-In
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Wolf Ticket
      • AntiPattern: Architecture By Implication
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Warm Bodies
      • AntiPattern: Design By Committee
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Swiss Army Knife
      • AntiPattern: Reinvent the Wheel
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: The Grand Old Duke of York
    3. Software Project Management AntiPatterns
      • Changing Role of Management
        • Death March Projects
      • Management AntiPattern Summaries
      • Mini-Antipattern: Blowhard Jamboree
      • AntiPattern: Analysis Paralysis
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
      • Mini-AntiPattern: Viewgraph Engineering
      • AntiPattern: Death By Planning
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Fear of Success
      • AntiPattern: Corncob
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
        • Related Solutions
        • Applicability to Other Viewpoints and Scales
      • Mini-AntiPattern: Intellectual Violence
      • AntiPattern: Irrational Management
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
      • Mini-AntiPattern: Smoke and Mirrors
      • AntiPattern: Project Mismanagement
        • Background
        • General Form
        • Symptoms and Consequences
        • Typical Causes
        • Known Exceptions
        • Refactored Solution
        • Variations
        • Example
        • Related Solutions
      • Mini-AntiPattern: Throw It over the Wall
      • Mini-AntiPattern: Fire Drill
      • Mini-AntiPattern: The Feud
      • Mini-AntiPattern: E-mail Is Dangerous
  • Part 3 — Conclusions and Resources
    • Appendix A: AntiPatterns Synopsis
    • Appendix B: AntiPatterns Terminology
    • Appendix C: Acronyms Used in AntiPatterns
    • Appendix D: Bibliography

Reviews

AntiPatterns

Reviewed by Roland Buresund

Good ******* (7 out of 10)

Last modified: Oct. 18, 2023, 1:50 a.m.

An oldie, but good and still valid. An answer to the Pattern-sycophants. And it is funny as well, which makes it enjoyable.

They are having a technical streak, and attacks management practices that are not always the best (but they attack their programmer brethren as well). Funny thing is that the authors are old CORBA-people, which in itself is nowadays seen as one of the greatest Antipatterns...

Worth reading if you're into IT, otherwise, it will probably go over your head.

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required