Collections of Agile Practices

While agile development is founded by the four agile values (see the agile manifesto) and ruled by agile principles (e.g., the 12 principles behind the agile manifesto), most of daily agile project work is determined by agile practices: How shall we act and interact in order to build new systems and software?

Every team shall establish its specific combination of agile practices that best suit its specific needs. But where can we find candidate agile practices? Where can we get advice on how to combine them and build effective development processes?

This article lists useful information sources on agile practices. Teams can use them as starting points when designing their own suitable development approach. In addition, when projects run into difficulties, the collections of agile practices might provide ideas on how to improve.

Before we move to the collections of agile practices, let’s take a look on how we can combine them into development processes: Agile methods (e.g., Scrum, Kanban, Extreme Programming (XP), and Lean Software Development) and agile method frameworks propose specific sets of practices that function well with each other. However, no agile method or framework might perfectly suit a specific situation and development context. So, you might well start with such a method or framework, but quite soon you will see the need to add some other agile practices, too. This is where the collections of agile practices come in …

A classic source of agile practices is the Agile Alliance’s Guide to Agile Practices. It covers the most important practices and presents them in an alphabetic list. Most practices are described by a concise definition, expected benefits and common pitfalls are stated, and the origins of the practices are defined. Unfortunately, not all practices are defined at this same level of detail.

The Scaled Agile Framework (SAFe®) homepage hosts an interactive diagram that illustrates the method framework and at the same time links to detailed explanations of each underlying agile practice. The explanations are generally very thorough and instructive. The SAFe homepage might be the richest and most elaborate source of agile practices. A related information source is Dean Leffingwell’s book on Agile Software Requirements.

Another approach for large-scale agile development has been described by Craig Larman and Bas Vodde in two related books. The second of these two books, Practices for Scaling Lean and Agile, hosts an extensive collection of agile practices.

Gojko Adzic has written a book and maintains a website on Specification by Example. This book contains useful explanations of agile practices, mostly from the requirements and testing disciplines.

The definitions of most agile methods involve collections of agile practices. The Wikipedia articles on Scrum, Kanban, Extreme Programming (XP), and Lean Software Development provide good overviews of the respective practices.

Additional kinds of information that can be regarded agile practices are patterns and pattern languages. The most comprehensive and possibly most relevant collection of  agile patterns has been published by the Scrum Pattern Community. The patterns have been collected and consolidated during the ongoing series of ScrumPLoP conferences. The community and conference homepage is http://www.scrumplop.org/. (PLoP stands for Pattern Languages of Programs.) The collection of patterns is available at the ScrumPLoP Published Patterns Homepage. It is structured in subject matter categories, so called pattern languages, such as Scrum Core, Product Organization, and Distributed Scrum. Each pattern language is a system of interrelated patterns. A pattern represents a specific practice with an explicitly defined objective and context situation. The ScrumPLoP homepage is a very rich source of information for everyone seeking inspiration and advice on how to apply and improve Scrum-based agile development.