Lecture 17
Introduction to AntiPatterns
1. What are AntiPatterns?
o Definition: An AntiPattern is a common but counterproductive
solution to a recurring problem that leads to negative
consequences.
o Causes:
Lack of knowledge or experience.
Misapplication of a good pattern in the wrong context.
o Examples:
Structured programming, which aimed to improve software
productivity but introduced its own set of challenges.
Why Study AntiPatterns?
1. Importance:
o Prevention: By studying AntiPatterns, developers can learn to
recognize and avoid common mistakes.
o Problem Solving: Offers templates for identifying and solving
common issues in software development.
o Improvement: Encourages better practices and helps in avoiding
recurring problems within an organization.
Causes of AntiPatterns
1. Root Causes:
o Haste: Tight deadlines often lead to neglecting important activities.
o Apathy: Lack of concern for solving known problems.
o Narrow-Mindedness: Resistance to learning and adopting proven
solutions.
o Pride: Refusal to reuse existing solutions because they were not
invented by the current team.