Continuous Improvement and Short Feedback loops (think: Test Driven Development; Sprint Demo/Review; …) are at the core of any Agile process. Without a structured improvement process it can be difficult for teams to improve and without improvement we stagnate. For methods like Scrum, XP and et al., Retrospectives are that tool.
What is a Retrospective? It is a moment for the team to stop, breathe and take a break from the day to day grind. It’s a chance to step back and reflect on the past iteration. To find things that worked well, things that need improvement and what the team has the energy to improve.
How do Retrospectives differ from Post-mortems (see CIO Update and PragmaticSW)?
- Post-mortems occur after the project is done (or even dead), when it’s too late to improve that project.
- Post-mortems are long feedback loops, once per project might mean every 6-18 months.
- Post-mortems often generate nice reports that are placed on a shelf and ignored (also called write only documentation).
- Post-mortems sometimes turn into blame and shame events.
Well run retrospectives provide an opportunity for small improvements. The keys to a well run Retrospective:
Retrospective Prime Directive (Norman Kerth): “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.” The key here is to remind participants at the start of every retrospective this is not to blame and shame. It’s about understanding what happened in the course of the last iteration. The focus is on events and not the people.
A clear agenda – a simple one:
- What happened in the last iteration (including what SMART goals did we achieve?)
- What would like to be celebrated/remembered/…
- What areas need improvement?
- What improvements should we put our energy into for the next two weeks?
- Clear Ground Rules see: Meeting Ground Rules Updated
- An Open Mind from all team members with the focus on solutions and not just the problems.
- Appreciations – just take a few minutes to share something that you really appreciate that someone else on the team did. Interesting twist I just noticed that Ellen Gottesdiener puts appreciations at the beginning of her Retrospective. That’s very interesting, that will help put people in a positive frame of mind and make it easier to tackle the problems later. Elegant.
- Once you decide what you have the energy to tackle, set SMART Goals (Specific, Measurable, Attainable, Realistic/Relevant, Timely). See: SMART Goal Setting. In the context of an Agile/Scrum team I would always make timely less than two weeks, so that you check back in the next retrospective.
- A great facilitator who is able to stay out of the conversation and maintain the flow. Bring an outsider in occasionally, just to see a different approach.
- Mix-up your retrospective activities to maintain the energy and interest:
- Post your SMART goals on the team’s Information Radiator and check up on them in the Daily Scrum.
- If you don’t make the improvements that people choose then Retrospectives will quickly lose their value as people say: “Nothing ever happens from these”.
When: At the end of every iteration or sprint. Allow one hour for every week of iteration. So a 1 week sprint would have 1 hr, 2 weeks a 2 hour retrospective. 3 weeks a 3 hour retrospective, 4 weeks – no one does those anymore right?
Who: The whole team – I like to see (or hear) the Product Owner and the Scrum Master. Some people will tell you that the PO isn’t necessary. Fine, but if they’re not there they can’t help make things better.
Mark has over twenty years experience in the IT industry, working as a Developer, Manager, Technical Lead, Architect and Consultant.After ten years of working on and managing waterfall projects he discovered Agile in 2001. Working in a small company he introduced Agile methods one practice at a time. As an employee of Cognos, from 2006 – 2009, he introduced Scrum to the business and coached a number of teams. As part of that process he designed a Test Driven Development adoption strategy and introduced a number of practices to support it. Mark is a Certified Scrum Trainer and Agile Coach with Agile Pain Relief Consulting.