Refinement – what is it and why do we do it?

Refinement is an important process during each sprint. Defines maintenance scope and helps working with priorities for the future.

Refinement[1] – what is it and why do we do it?

Refinement process focuses on priorities and gives opportunity to manage Backlog items continuously during software is being developed, without wasting energy on additional effort. Therefore, the biggest value of Refinement is saving. We establish and prioritize next features we want to be created, so in fact we save time (and money) by deleting particular scope meetings[2] and we focus on business values of developed features without any pauses with developers on board.

The first and most important information about Refinement we need to understand is that Refinement is a process not a specific meeting. Refining is extended throughout the entire project and it is being realized on particular meetings called Refinement Session.

The Refinement Sessions are timeboxes, where dev team work along with Product Owner (PO) on a Product Backlog for future Sprints. It is very important to remember that Refinement does not serve to change scope of current Sprint, but clarifies Backlog items in advance.

Refinement process  should not take more than 10% of whole Sprint and best practice is to have sessions every week of the Sprint. There is no answer to how much time does the team need to spend on Refinement Sessions, there is only suggestion regarding upper limit. The easiest way to define timebox for Refinement Sessions is to have 4 hours every week.

All Refinement members should understand what is the reason for them to meet and what is the value of the process. And what are those values?

Refinement process helps dev team to take responsibility for the development process from the very beginning – when requirements are delivered. Requirements have business values, so team can understand what is the future value of features. If dev team does not understand business value and does not have idea of how the features should work, PO has a lot of work. This is their job to make Backlog items as much detailed and described as team need.

In practice, PO needs to establish with devs some rules they all will stick to. They need to define a ‘template’ of how particular Backlog item should look like. They need to decide what granularity of Acceptance Criteria is needed or do they need mockup, description, use cases, MoSCoW analysis. Sometimes all of the above is necessary. This is an agreement between PO and devs, because they all need, to take responsibility for features delivery.

If Refinement members understand exactly how to work on Backlog items, it is possible to start refining overall Product Backlog items like Features, Epics or User Stories which include new business values. Refinement Session starts with granulating poorly described Backlog items to the items all team agreed that are possible to implement as working software in defined iterations. The most important is that all parties are in accord. Next step is to estimate. If dev team understand all information and business value, they should be able to estimate the Backlog items in very overall way. More detailed estimates will be done during planning. Estimates on this step is needed to understand the granularity of Backlog items.

Refinement Sessions should be done once a week, because it shows how the software will be improved and what functionalities will be added next. It gives focus on product overall not only on current features. It gives sense of responsibility too, because we all know what is the maintenance goal for a client.

We cannot forget that if Product Backlog items are ready to develop, it is easier to plan work in next Sprints, to make priority decisions and be sure that we all understand how, when and why we deliver.

I believe that the biggest value of Scrum is sense of responsibility which defines our focus on work and motivation. Refinement lets us be more responsible, because it is a part of bigger planning process we are involved in. We do Refinement, because it gives us possibility to prioritize, predict and deliver. It helps PO answer client’s questions about timeline predictions and helps dev team to understand business values. We do Refinement Sessions because it gives value to all stakeholders and we believe in values.

[1] Refinement – 1. the process of making a substance pure 2. a small change that improves something, – according to https://dictionary.cambridge.org/dictionary/english/refinement

[2] In a different approach the meetings are planned by management after achieving milestones in project, so they need a lot of effort to set and describe scope of next features for developers – who are not involved.

Agata Sobek
Scrum Master/Agile Guide