AntiPattern is a formula that tells us how to go from problem to the wrong solution.
The software industry needs to address some key issues as people transform business concepts into software applications. Some experts may argue that the emergence of design patterns has provided the most effective form of software management available to date, and the whole pattern movement has come a long way in codifying concise terminology for the transmission of sophisticated thinking in computer science.
The software provides solutions to specific problems. However, these solutions may be often worse than before we started. Thousands of innovative approaches to software development have been developed, from exciting new technologies to progressive processes, although with all these ideas, the likelihood of success for managers and developers is grim.
AntiPatterns well identifies and categorizes common bugs in software practice, an environment rich in goals for AntiPatterns research. Besides, they also provide alternative solutions. AntiPatterns expands the field of design pattern research into exciting new areas and issues, including ReFactoring, ReEngineering, system extensions, and system migration. They are common in society and have even been there since the founding of software, such as spaghetti code. As a research discipline, AntiPatterns studies what seems like a good idea at first, but in the end, it doesn't work.
The AntiPatterns study is a major research activity for several reasons. The presence of good patterns in successful systems is not enough, as it is necessary to find patterns even in unsuccessful systems. At the same time, it is useful to show the presence of certain patterns (anti-patterns) in failed systems and their absence in successful systems. Here are some examples of anti-samples. Examples of anti-patterns in software development are The Blob, Lawa flow, Boat anchor, examples of anti-patterns in software architecture are Swiss Army knife, Reinvent the wheel, within anti-patterns in project management it is possible to know Analysis paralysis or fear of success. Using a formula does not mean that your system will be better. Some people try to use each formula regardless of its usefulness in context, which usually leads to very negative results.
The publication of design literature has been growing since 1994. For the skilled object-oriented architect, there is a large and growing base of reusable designs that can be evaluated and used in software development efforts. At the same time, there are a large number of documents and seminars that help document his domain knowledge into design patterns for easier use by other professionals. On the other hand, many people fail to properly evaluate how a particular design pattern or pattern language applies to a particular set of design issues.
The development of AntiPatterns had many contributors, so it would be unfair to assign the original idea to a single source. AntiPatterns can be considered as natural steps in complementing the work of moving design patterns and extending the design pattern model. AntiPatterns seeks to bridge the gap between academic GoF design pattern formalists and software developers who need more contextual information to evaluate and determine if a particular technique is appropriate for their particular situation.
The key to clarifying the scope is to identify how the pattern and AntiPattern apply to the problem. As an example, we can consider braking in a car in the period before anti-lock brakes. We're moving on ice and we need to stop. The driver decides to stop by firmly depressing the brake. This can be considered AntiPattern. At first, this seems like a good idea, but he has the fatal mistake that hard braking on ice causes skidding and a slight slowdown. The AntiPattern study teaches you how to pump the brake and presents a model solution.