An Agile retrospective is a meeting that's held at the end of an iteration in Agile software development (ASD ). During the retrospective, the team reflects on what happened in the iteration and identifies actions for improvement going forward.
Each member of the team members answers the following questions:
- What worked well for us?
- What did not work well for us?
- What actions can we take to improve our process going forward?
The Agile retrospective can be thought of as a "lessons learned" meeting. The team reflects on how everything went and then decides what changes they want to make in the next iteration. The retrospective is team-driven, and team members should decide together how the meetings will be run and how decisions will be made about improvements.
An atmosphere of honesty and trust is needed in order for every member to feel comfortable sharing their thoughts. Norman Kerth's work at the turn of the millennium was highly important to the development of Agile retrospectives and retrospectives in general. Kerth's prime directive states, "Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand."
Because Agile stresses the importance of continuous improvement, having a regular Agile retrospective is one of the most important of Agile development practices. The Ninth Agile principle outlined in the Agile manifesto states, "At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly." A framework, such as the one below, can be used to provide structure and keep discussion during the retrospective focused.
- Set the stage - get the team ready to engage in the retrospective, perhaps with a warm-up activity such as Plus, Minus, Interesting (PMI) (5 minutes)
- Gather data - create a shared picture of what happened during the retrospective (10 minutes)
- Generate insights - discuss what was successful and identify any roadblocks to success (10 minutes)
- Decide what to do - identify highest priority items to work on and put measurable goals on those items so they can be completed (15 minutes)
- Close the retrospective - reflect on the retrospective and how to improve it, and to appreciate accomplishments of the team and individual interactions (5 minutes)
The form above is not the only way to hold an Agile retrospective. It is important to consider other alternatives which include, but are not limited to project post mortems, PMI retrospectives, six hats retrospectives, and asking the five whys.