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:
- Agile Bonuses – The Damage They Do
- Scrum Anti-Patterns: The Hardening Sprint
- Scrum Anti-Patterns: Large Product Backlog (published on ScrumAlliance.org)
(download link for PDF version in case the Scrum Alliance link is no longer functional)
- Scrum Anti-Patterns: Micromanagement
Watch for more articles to be added soon!Image attribution: Agile Pain Relief Consulting
These anti-patterns sound eerily familiar… please add more to the list!