An antipattern is solution applied to a particular problem that is considered harmful or undesirable, but is used on a regular basis. An antipattern can be applied to a process, product design, company policy of an org, etc. A key characteristic of antipatterns is that they are used in situations where other, better, alternatives exist. Antipatterns can include such practices as over-engineering, reinventing the wheel, establishing too many dependencies, overcomplicating the situation and adding more complexity to a situation.