Anti-patterns are commonly used ways of doing software engineering that are not useful or cause more issues than they solve. See software design patterns for the opposite. There are many diverse types of software anti-patterns. Some relate to software design, object-oriented programming, computer programming, methodological, configuration management, DevOps, and other aspects of software engineering. Several books have popularized the idea and teaching of anti-patterns.

Anti-patterns can be found in anything that has organization, from project management to cultures, but this list focuses solely on software and computer science anti-patterns.

Generic software design anti-patterns

Object-oriented anti-patterns

Poltergeist

Programming anti-patterns

Action at a distance Boat anchor

Lasagna code Lava flow

Magic numbers Magic strings Repeating yourself

Soft code

Methodological anti-patterns Copy and paste programming Golden hammer

Not invented here or (NIH) syndrome Premature optimization Programming by permutation (or "programming by accident", or "programming by coincidence")

Silver bullet

Configuration management anti-patterns

See also

List of software architecture styles and patterns Software design pattern Anti-pattern AntiPatterns (book)

References