Backlog, Backlog, Backlog… One of the key artifacts of Agile / Scrum is the idea of backlogs. Now it can be a Product Backlog at product level or a Sprint Backlog at sprint level. But it is one of the most used terms while working in an agile method.
The Product Backlog is essentially a project’s To-Do list, or requirements repository. All the items in a Product Backlog are deemed in scope for a project, regardless of level of detail. They are ordered, not just prioritized – meaning the one on top is more important than the one in 5th position, which is more important than the one in 23rd position. Order is decided by the Product Owner and usually driven by business value – in consultation with the Development Team.
The Product Backlog is also the source for the Sprint Backlog. While the Product Backlog represents the requirements repository for the project, the Sprint Backlog is the agreed upon scope for the next upcoming sprint and as such represents the overall development.
The exercise of adding details to the items in a backlog is known as Backlog Refinement (formerly known as Backlog Grooming).
The intent of backlog refinement is to ensure that the backlog remains populated with items that are relevant, detailed and estimated to a degree appropriate with their priority, and in keeping with the current understanding of the project or product and its objectives. Unlike a more formal “requirements document” the backlog is understood as a dynamic body of information.
Best Practices for Backlog Refinement
So how should we plan to do Backlog Refinement or what are the best practices for it. As mentioned above, Backlog is a dynamic body of information. It is ongoing. Some of the best practices to make Backlog Refinement more effective are:
- Make it DEEP – Detailed appropriately, estimated, emergent and prioritized
- Have Two sprints stories In Progress – Have two sprints worth user stories ready to work on in accordance to the agreed upon Definition of Ready
- Identify Dependencies – To avoid blocking team members, adding technical stories, spikes etc.
Question arises, how do you prioritize backlog working with a service based company or working as a Business Analyst or Agile Business Analyst. The answer is that the ultimate feedback on prioritization will be given by the customer, however, one should try to add value by guiding the customer.
As a Business Analyst, you should always collaborate with development team to maintain a technical backlog which would consist of technical debt over a period of time. If you do so, you have a better chance of guiding the customer in certain cases to resolve dependency between two different backlog items. Another way is to visualize the product and guide development teams to create sprint goals which would lead to optimized increments.