Backlog Refinement and the Scrum
Backlog refinement is an important activity in Scrum, equal in importance to the Scrum events. The process allows the team to share thoughts and forces the team to broach fundamental questions. Allowing them to gain an improved and common understanding of the value needed. In my experience, many teams fail to realise the detriment they cause themselves, and the benefits they miss, by not refining the backlog on a regular basis. Even mature teams sometimes feel that it’s okay to leave this activity out of their sprint cycle; and those who want to do it seldom understand the best way to achieve a sensible level of backlog refinement.
Using Behaviour-Driven Development to support Backlog Refinement
Over the years I have increased my use of Behavior-Driven Development (BDD) as part of backlog refinement during the sprint. BDD is a means of applying business language to acceptance criteria, and thus acceptance tests. Helping the business, and IT functions, better understand what’s being developed.
How can teams use BDD to support product backlog refinement?
During the sprint, the team looks ahead at the product backlog items (PBIs), and potential candidate requirements coming up for the next sprint. The development team and product owner meet regularly throughout the sprint to discuss and write out the conditions of acceptance for the next-highest priority PBIs. Use the the BDD format of “given-when-then” for each scenario.
It’s important to note that at this point it is not expected that every single BDD scenario will be captured – the session should not be too long. The session is a quick review of what scenarios are needed. The team compose a list of scenarios to help during the next refinement session. The team should start defining a healthy set of BDD scenarios during each refinement session. At each session they can then improve the list until (by sprint planning) they have most, if not all, scenarios captured ready to work on in the next sprint.
It’s up to the team to decide the frequency of the refinement sessions during the sprint. Ultimately the team will naturally fall into a sensible rhythm and adapt as they experience value from using this technique. The team should ask themselves, ‘do we have enough healthy items ready to work on for the next sprint?’ If not, more backlog refinement is needed. The team should aim to have at least one to two sprints worth of ‘ready’ product backlog items to select during sprint planning.
A technique that can support the understanding of the product for both teams and stakeholders.
The application of BDD goes beyond what we’ve discussed so far. The technique is great for test automation – even if the teams are immature in their understanding and application of automated testing. Using BDD on a daily basis will form a great foundation to start learning and experimenting.
Understanding and visualising the backlog
It is important to note that product backlog refinement itself need not be a formal meeting during the Sprint. While it’s okay to start this way, mature teams often try and work up a lightweight approach that weaves regular backlog refinement into their sprint. Visualising the product backlog on a wall can promote a sense of transparency and openness to the team and business. I have seen first hand how such techniques bring the team together to refine the product backlog naturally when needed. Visualising the product backlog makes it easy for the team to decide if they have enough ‘ready’ items for sprint planning. Many teams prefer this method and find it a natural, non-forceful way to refine their product backlog.
Ultimately, using BDD for backlog refinement in Scrum works to bring the team and stakeholders together in improving their understanding of the system. The technique gives them confidence in the project approach and the adaptability of Scrum as a framework. It’s also a great way to get your team working well on many levels, not just the obvious in terms of backlog refinement but, also in maximising communication. It supports healthy team discussion and thus allows the team to bond, grow and build high quality products.