Valuing Design Repair

One of the favorite activities in any of the architecture or design courses is to discuss antipatterns - design ideas hatched with good intentions that prove problematic over time. The few books on antipatterns focus primarily on introducing problems and straightforward solutions, which makes them hard to distinguish from better-known books that present design or programming guidelines or refactoring advice. However, there's a slight but significant difference between antipatterns and style guidance. A style guide typically covers good practices - what to do and what to avoid. An antipattern is somewhat more ambitious. It seeks to explain how good intentions can go awry and suggest meaningful ways to repair broken systems. The point isn't so much to say "do this" or "avoid doing that" as to suggest ways to prevent a problem or to skillfully apply a set of corrective actions.