Backlog refinement is actually a term that you have heard, seen implemented differently by different people and now you are confused.
The purpose of this post is to overly simplify the backlog refinement session so that everyone can do it.
Debunking some unclearly
This is literally what a backlog refinement session is...
What is a "backlog refinement" in scrum?
The other word that is usually used is "grooming session" or "grooming", and that is nothing else except discussing tickets/features/bugs on your backlog with your scrum team.
You are not doing anything else except making sure that the team understands what they need to do, ask questions and even propose adjustments.
Why do you need a backlog refinement session?
As a general rule, the only tickets that are allowed to be part of a sprint, are the ones that are refined through the backlog refinement session. A sprint is a short time - and if you spend 3-4 days back and forth with other stakeholders to clarify open points, not only you will not reach your sprint goals, but you will cause confusion in the team.
When do you need a backlog refinement session?
Periodically is the best answer to this question. Depending on the load, once a sprint or twice a sprint.
Your refinement sessions should be the main sessions that you discuss stuff with your dev team. Ad-hoc calls and meetings are counter-productive.
Unless an issue is the highest priority bug that is breaking your production, you do not need to have an ad-hoc session.
Who should be part of this backlog refinement session?
Dev scrum team, scrum master, and someone from the product team. Having said that, if you believe that someone else is necessary then add them, but do so ad-hoc.
How do you actually do it [operationally]
So enough theoretical mumbo-jumbo. You are here for the facts and the process. Here is my recommendation on how to actually schedule and run a backlog refinement session.
- Schedule a regular meeting, that is at least once per sprint. If you have a very large backlog, then do it twice per sprint so that you can refine everything
- Prepare for the meeting, select the tickets that you want to refine, and tag them. Make sure to read everything in advance so that you are prepared and know what they are, because if you have questions, then your dev team will have more.
- Timebox the meeting, a maximum of 45 minutes to one hour. No more.
- At the meeting, considering that you have been prepared, if you do not need specific people, inform them. We want to minimize meetings!
- Ask your team if THEY have something that they want to refine, discuss, or are unclear.
- When you review the tickets, make notes, comments, or tag them accordingly. After the refinement session, the ticket status should be either ready to be worked on or have clear questions, which are assigned to the stakeholder that will answer them.