Backlog Refinement: Eight ways to split a story04-10-2023
Escaping the Procrastination Zone11-10-2023
Good backlog refinement can make your team fast. Bad backlog refinement can make your team slow even though they look fast! What can go wrong in backlog refinement? In this article, I’m going to look at eight traps to avoid so that you get better results, sooner.
Outcome – None in Mind
Everyone says ‘start with why’ but it is easy to lose sight of it. The lack of a clear goal represents an expensive trap. Such busywork costs time and money but produces no value. Always start with the outcome in mind and identify the minimum necessary to achieve it
Technical User Stories
Splitting user functionality into front-end, middleware, and a back-end stories is a symptom of single-skill teams that lack the cross-functional skills to solve problems and get things done. Bring all the skills together in each team.
Tasks identified in a work breakdown structure (WBS) often lack user-visible acceptance criteria. This task-based splitting slows down your release cadence and delays feedback.
A refined backlog item is still a backlog item. It produces a tangible result for your own use, for the user, or for the customer. Only do task planning during the “How” section of Sprint Planning.
Specifying details before you have a deep understanding of the user or problem makes it harder to identify simpler, cheaper, or more effective solutions.
Dependencies are a can of worms that create delays beyond your control. They can cause unfinished work and massively increase the coordination effort. The best way to deal with them is not to have them. Structure your teams to minimize them; ensure tight collaboration between teams when they are unavoidable; and consider technical workarounds, like mock-ups, to mitigate their effects.
Too Many Features
Every line of code costs time and money; only some of those lines will have impact. Ask yourself frequently, “is this feature or is this component essential?”
Forgetting the Why
I once defined a sprint and a half worth of work to implement a feature – all because we just needed to check a box in an RFP. It was a Developer who asked ‘Why?’ and pointed out that we had massively over-specified the requirement. Good developers care about the why and ask good questions!
Brainstorming in an ivory tower can produce lot of good ideas, but even your best ideas need validation from real users and customers. The sooner you validate your assumptions, the lower your risk.
INVEST is Your Friend
As a general rule, strive to make your stories Independent, Negotiable, Valuable, Estimable, Testable, and Small. The danger is simple. Splitting stories from “epics” to “grains of sand” can define features that produce no value. Keep your backlogs short, and always challenge whether value justifies the cost.
How did I do? Did I spring all the traps? Or have I missed any? What is your “there I was” story of failed backlog refinement?