Anti-patterns often result from a quickfix to a problem. They might look like the right solution but are not that good in practice. Anti-pattern are also not dark pattern. The difference is that dark pattern use psychological knowledge to mislead while anti-pattern design happens when the solution does not fit the context, and is still recurring in the design. Anti-pattern are created out of fixing problems. The solution should solve a problem and seems to help in the short term but is not a good solution on the long run. The solution would be okay but does not fit the specific context. There are structural problems or issues with management that lead to bad design. Also finding a workaround for an issue caused by outdated technology can lead to anti-pattern design.
Anti-patterns can be categorised according to the problems they cause.
There might be an increased cost of interaction, which means additional taps for certain features or increased thumb stretching, like if buttons are located at a hard-to-reach position for the thumb. Also increased context switching can appear when not using transitions for changing the layout.
Increased confusion across platforms can happen when icons are used that usually mean something else.
By observing the usual rules those problems can be avoided. It becomes more difficult when the anti-pattern grows into an established design pattern. For example, the use of the hamburger menu, evolving when phones and tablets got popular. Therfore every new UI pattern has to be very well considered.
As normal design pattern had their origin in software, antipatterns also appear in software development. Apps have to be constantly adapted to new user requirements and in the process, solutions may not fit, thus unintentionally creating bad solutions, i.e. antipatterns. Detecting and improving these antipatterns improves the quality of the software. Using antipattern can also lead to higher costs for maintance. [2]
Design patterns have been introduced to collect solutions that have proven to be good, while anti-patterns represent solutions that have not proven to be good.
There are a number of rules and guidelines for the design of user interfaces. These are often too simple or abstract, or they conflict with other rules. It also depends on the designer whether he understands the underlying problem and how to solve it, and how he interprets the guidelines. Guidelines are more on the meta-level, whereas design patterns start from a concrete problem and are much more specific which makes them a better tool than guidelines.
Appleton [B. Appleton, “Patterns and Software: Essential Concepts and
Terminology,” http://www.bradapp.com/docs/patterns-
intro.html, retrieved: January 2017.] distinguishes between two kinds of anti-patterns:
1. Those that describe a bad solution to a problem,
which resulted in a bad situation.
2. Those that describe how to get out of a bad situation and how to proceed from there to a good solution.
The second type of anti-pattern is also known as an “Amelioration Pattern” [The Portland Pattern Repository Wiki. http://c2.com/cgi/wiki,
retrieved: January 2017.].
Amelioration patterns are a combination of the first category, the description of a bad solution with showing a regular pattern for the solution.
Antipatterns are often created with the best intentions – they might “look like a good idea, but whichbackfire badly when applied.” [J. O. Coplien, “Software Patterns,” SIGS Books, New York, NY, USA, 1996.] Often it is not so obvious if the solution is a dark pattern.
Mirnig and Tscheligi decribed a in their paper what what criteria an antipattern must fulfil, based on the criteria a regular pattern must have.
The antipattern musst like the regular pattern be available and be easily found. It needs an description of the problem and a context description. The structure is almost the same, because the reader needs to understand why the solution is not working in this context. The only difference comes with the descriptio of the usage. Regular patterns offer a solution that fits the problem, while in anti-pattern the steps to the solution should be documented. To understand why the pattern is not working the designer musst understand the decicions made leading to this bad solution. It should also offer a better way to solve the problem with comparing it to the result that is considered the better solution. The anti-pattern should also contain at least one example.
[1] P. Tiangpanich and A. Nimkoompai, “An Analysis of Differences between Dark Pattern and Anti-Pattern to Increase Efficiency Application Design,” 2022 7th International Conference on Business and Industrial Research (ICBIR), Bangkok, Thailand, 2022, pp. 416-421, doi: 10.1109/ICBIR54589.2022.9786470.
[2] G. Hecht, R. Rouvoy, N. Moha and L. Duchien, “Detecting Antipatterns in Android Apps,” 2015 2nd ACM International Conference on Mobile Software Engineering and Systems, Florence, Italy, 2015, pp. 148-149, doi: 10.1109/MobileSoft.2015.38.
[3] Mirnig, A.G. and Tscheligi, M., An Initial Analysis and Classification of Regular, Anti-, and Dark Patterns. PATTERNS 2017 : The Ninth International Conferences on Pervasive Patterns and Applications, 2017