Good Reading: Wikipedia Anti-Patterns
posted under category: General on January 16, 2008 by Nathan
Some of the anti-patterns listed on Wikipedia's page are way too familiar. It's good reading in the sense that we should learn what not to do. Here are my favorites that hit closest to home:
- Bug magnet: A block of code so infrequently invoked/tested that it will most likely fail.
- Anemic Domain Model: The use of domain model without any business logic which is not OOP because each object should have both attributes and behaviors
- BaseBean: Inheriting functionality from a utility class rather than delegating to it
- Lava flow: Retaining undesirable (redundant or low-quality) code because removing it is too expensive or has unpredictable consequences
- Ravioli code: Systems with lots of objects that are loosely connected
- Copy and paste programming: Copying (and modifying) existing code rather than creating generic solutions
- Reinventing the square wheel: Creating a poor solution when a good one exists
- Tester driven development: Software projects where new requirements are specified in bug reports
- Crisis mode (a.k.a firefighting mode): Dealing with things only when they become a crisis, with the result that everything becomes a crisis
- Seagull management: Flies in, makes a lot of noise, craps all over everything, then flies away.
- Warm bodies: The worker who barely meets the minimum expectations of the job and is thusly shunted from project to project, or team to team.