The purpose of a retrospective is to inspect how the previous sprint went with regards to people, relationships, processes and tools. This is where we reflect on ourselves and our work in order to identify the good, the bad and future opportunities.
Retrospectives allow us to create an actionable plan to implement improvements so that we can become better at what we do. After all, the bad habits we have developed over the years are not going to disappear with the wave of a magical wand & a "bippity bippity bop!". Teams have to continually work to reinforce good patterns of behavior and eliminate the not so good.
1.) Hold a retrospective at the end of every sprint. (Very Important.)
Basic Rules of Engagement:
TIPS FROM OTHER SCRUMMASTERS:
I like to schedule an 'as needed' Release retrospective with my teams for them to inspect the release from a holistic, big picture point of view. It's essential to pause from the nitty gritty of everyday coding/testing so they can review the release process and course correct/pivot if necessary.
The list below includes some questions that I ask the team to mull over, so they can pinpoint, assess and identify improvements.
Questions to consider:
To save the team time and to allow for some serious juicy conversation, I will forward this list of considerations a few days ahead of time.
The intent of the refinement ceremony is to ensure the backlog remains populated with items that are relevant, detailed and estimated to a degree appropriate with their priority; and current understanding of the product and its objectives.
The team (Product Owner, ScrumMaster, Developers) meets regularly to refine the product backlog, which can lead to any of the following:
Prior to the refinement session:
During the refinement session:
More information on estimating stories based on the Fibonacci sequence can be found at: http://www.allaboutagile.com/how-to-implement-scrum-in-10-easy-steps-step-2-how-to-estimate-your-product-backlog/
TIPS FROM OTHER AGILE PRACTIONERS:
- My team meets daily for an hour; we alternate Design meetings with refinement sessions. Yes, this is time consuming -- however, since we’ve already discussed the story implementation beforehand (during Design), we’re able to efficiently identify story points and tasks during refinement.
- Having 2 refinement Sessions per week keeps us from falling behind. In addition, I have a nice set of stretch and future sprint stories to pull from.
- For any team members off site, we use either Pointing Poker, Planning Poker or Plan-It Poker. (All are free, and defaults to Fibonacci point values but can be customized ahead of time).
- I like this because
• Team members can vote when they are ready and there is a button to ‘Show Votes’ all at the same time.
• There is a timer that re-sets after each ‘Clear Votes’ has been triggered (optional)
• There is the option to join a session as an Observer.
- I always try to have an Acceptance Meeting at least a day or two before each refinement session to make sure there are no questions in regards to testing. I always book it, but we end up cancelling if we don’t need the time which is about 80% of the time. If we are all on the same page, I know that the refinement session will go smoothly. If we’re not, I at least have some time to add more details or even split a large ticket into smaller tickets before the refinement session. Also, having them aware of the tickets is almost as much detail as I am will allow him to help me timebox in the refinement session so we stay productive.
- The QA on my team reviews the stories before the developers see them, so they can verify that the acceptance tests are captured and that the story is testable.
- I send the list of stories to the team about 24-48 hours before refinement. They review them and reply all, responding with questions or red flags about the stories. This lets us identify stories that require a design session or other technical planning and are not yet ready for refinement.
- During the meeting, each story is timeboxed – 4 minutes for discussion, everyone throws points, then 2 minutes to discuss and agree on points. If a story needs more than 6 minutes, it’s not ready for backlog refinement and we hold it for a design session.
**Just an additional note **
You may have heard this ceremony referred to as “Grooming”, but recently, that word has been given a pretty bad connotation. Which is why it’s “Refinement” is the more accepted substitution. You're welcome.
During a recent retrospective, my newly formed scrum team raised a concern that they weren’t “plugged in” with one another throughout the sprint. They were all working on stories which contributed to the goal, but they didn’t see the outcome of their work. An action item was raised for the following sprint: “Incorporate sprint reviews” which they all agreed was needed.
As you are probably aware, the purpose of this meeting is “to inspect the increment and adapt the Product Backlog if needed”. Therefore, I scheduled the review prior to their sprint planning and retrospective. The day before, I reminded them of the upcoming demo and requested they self-organize, keeping it contained to 45 minutes.
The day came and each team member demonstrated the results of their work. They asked each other questions and clarified various misunderstandings, but mostly it was smooth sailing.
At one point, the Product Owners ears perked up on a particular comment made by one of the Dev's. He recognized that something was amiss and probed for additional clarification. Apparently there was a security gate that hadn’t been considered for production. Following a lengthy discussion, the team ultimately changed direction -- adding 3 new high priority stories for the next sprint, in order to address the discrepancy.
The PO was astonished and questioned why this wasn’t raised earlier. Frankly, he was frustrated, which was understandable – I probably would have been too. However, as the Scrum Master, I was elated! I could barely contain my excitement -- this was precisely the point of the sprint demo.
Due to this particular Scrum ceremony, the team identified gaps which could then be immediately addressed.
… And in my eyes, that’s a major win. It’s what Scrum is all about.
As with most people, I typically act based on what’s important to me. As an example, at retrospectives I show burndowns, burnups, velocity. I talk with the team about predictability and throughput. I remind them of the importance of collaboration and sprint commitments. Essentially I communicate what I believe is imperative for team success.
I’m often met with silence, which I assume means disinterest. The longer I speak, the more frustrated I become because WHY AREN’T THEY INTERESTED IN THIS? IT’S SO IMPORTANT!!!!
Being that my teams are distributed, I’m unable to assess body language - but I can see their pupils glaze over and eyelids flutter. Lately, the retrospectives have been painful and rather uncomfortable. The team is disengaged & quiet, and honestly -- even I don't look forward to them. I realized it’s time for a new approach.
In my quest for continual self-growth, today I stumbled across this quote: "This is their meeting, not mine.” (how strangely coincidental!)
This is so obvious.
And so simple.
How did I forget?
Pushing my ego to the side, I arrived at a retrospective this morning with one question for the team: “What do you care about?”.
For once, quiet team members spoke up. Eyes shined a little brighter. Developers were eager to answer that question. The answers were varied:
This was astonishing to me. They talked about their true concerns & took ownership of the actions. One person even voicing his anxiety of the roller coaster velocity (!!). We didn’t focus on the sprint per se, but the team identified what was really on their minds.
By flipping my objectives into a true servant/leader mindset, we were able to have a very direct, efficient conversation, resulting in actionable goals - and ultimately team improvement. (<-- Important to me! )
I guess, sometimes we don’t see the forest through the trees.