Why Study AntiPatterns?
AntiPatterns are a method of efficiently mapping a general situation to a specific class of solutions.
AntiPatterns provide real world experience in recognizing recurring problems in the software industry, providing a detailed remedy for the most common predicaments.
AntiPatterns provide a common vocabulary for identifying problems and discussing solutions.
AntiPattern support the holistic resolution of conflicts utilizing organizational resources at several levels, where possible.
AntiPatterns provide stress release in the form of shared misery for the most common pitfalls in the software industry.
Notes:
The general form of the AntiPattern provides a easily identifiable template for the class of problems addressed by the AntiPattern. In addition, the symptoms associated with the problem are clearly stated as well as the typical underlying causes of the problem. Together, these template elements comprise a comprehensive case for the existence of a particular AntiPattern. This form reduces the most common mistake in using design patterns, that of applying a particular design pattern in the improper context.
AntiPatterns highlight the most common problems facing the software industry and provides the tools to recognize these problems and to determine their underlying causes. Furthermore, the AntiPatterns present a detailed plan for reversing these underlying causes and implementing productive solutions. The AntiPatterns effectively describe measures which can be taken at several levels to improve the developing of applications, the designing of software systems and the effective management of software projects.
AntiPattern, like their design pattern counterparts, provide an industry vocabulary for the common defective processes and implementations within organizations. A higher level vocabulary increases the expressive of language between software practitioners and enable the concise description of higher level concepts.
The AntiPatterns clearly articulate the collaboration between forces at several levels of management and development. Many problems in software are rooted in managerial and organizational levels, and attempts to discuss developmental and architectural patterns without taking forces at other levels into account would be incomplete. Therefore, AntiPatterns goes to great lengths to bring together all relevant forces at many levels to both describe and address the core problem areas.
There are many times in software development when it is much easier to recognize a defective situation than to implement a solution. In the cases, where the power to implement an AntiPattern solution is lacking, an individual subjected to the consequences of the AntiPattern forces can find solace in knowing that his dilemma is, in whole or part, shared by many others throughout the industry. In some such cases where the AntiPattern has sever consequences, the AntiPattern can also serve as a wakeup call for a victim to set his sights of other employment opportunities in the industry and start preparing a resume.