April 9, 2015

Agile Software Development Best Practices: Retrospectives

As the word suggests, a retrospective is a meeting where a team steps back and examines how it is doing. Retrospectives are common to nearly every agile approach I know. Even one of the simplest agile methodologies –“Crystal Clear” – includes retrospectives as one of its 3 practices. (The other two are sitting together and delivering working software frequently).

It’s not difficult to understand why this is. The “Manifesto for Agile Software Development” states that we “value . . . individuals and interactions over processes and tools.” What this means is that there is no one perfect process that will guarantee you project success. Instead, you are more likely to be successful if you focus on the specific people on your team and ensure that their interactions are healthy and useful in your specific context. That’s precisely where the role of retrospectives comes in.

Agile teams hold retrospectives periodically, typically once per iteration. In the retrospective session, the team suspends its usual discussion about what they are building and considers instead how they are working together. The team talks about what’s working and what’s not, what they can do more of and what behaviors or practices they should eliminate. Most importantly, they generate ideas for how they might improve. Through the diligent application of successful retrospectives, each team evolves its own customized process over time that is optimized for its unique situation..

While it’s difficult to overstate the importance of retrospectives, this is a practice that too often gets neglected, often for one of the following two reasons:

  • Boredom – The team gets tired of meetings that follow the same, predictable pattern and often re-hash the same issues repeatedly.
  • Apathy – It’s easy to feel like other activities are either more urgent or more important than holding the retrospective “just this once.” This can quickly become a pattern, particularly if no one seems to care that much.

The keys to addressing these problems are to 1) ensure that you have good facilitation for your retrospectives, and 2) experiment with a variety of different retrospective techniques and approaches.

Good facilitation isn’t rocket science, but it does require practice and skill. If you can’t hire or co-opt an outside facilitator for your session, learn how to be a good one yourself. Better yet, have multiple people on the team take turns facilitating—it’s a useful skill in many contexts. If you’re looking for new ideas for your retrospectives, I highly recommend “Agile Retrospectives: Making Good Teams Great” by Esther Derby and Diana Larsen. It includes many different techniques that can help you make your retrospective meetings fun, interactive, and productive.

Watch the video below for more about what makes retrospectives such a vital part of the agile development approach.

Access this video on both Vimeo and YouTube.