In software development work, a design pattern is a description of a solution to a recurring problem. It outlines the elements that are necessary to solve the problem, including context and the consequences of certain actions, without prompting the reader to solve the problem a specific way, leaving them with the agency to write code as they see fit.
Patterns, when applied well and not overused, provide a guide to solving repetitive problems rapidly. A good pattern provides enough background information to help you solve the problem, without asserting that it is the best or only solution in all instances.
Scrum, Agile, Kanban, and other frameworks and mindsets like them, are sets of behavioural design patterns. In Scrum, we have Scrum PLOP (Pattern Language of Programs) that documents known patterns of effective behaviour.
Unfortunately, we also regularly see recurring design patterns that create ineffective behaviour. These are called Anti-Patterns.
Below, you can browse through our growing collection of articles about Anti-Patterns – what causes them, and what you can do to resolve or avoid them.