OKR Refinement

Zhanara Kolbaeva
Insider Engineering
7 min readJul 3, 2023

Objectives and Key Results (OKRs) have grown in popularity as a framework for setting goals and tracking progress among individuals, teams, and organizations. Agile methodologies like Scrum are commonly used in the tech industry to manage projects through short iterations or sprints. When using OKRs and Scrum together, teams can set sprint goals that align with their Key Results, enabling them to make progress towards their goals with each sprint.

This blog post outlines best practices we use at Insider for refining(grooming) OKR items, communicating and prioritizing your OKRs, evaluating progress, and making adjustments.

What is an OKR?

An OKR (Objectives and Key Results) is a goal-setting framework used by individuals, teams, and organizations to set clear and measurable objectives and track progress toward achieving them. The framework consists of the objective (what you want to achieve) and the key results (how you will measure progress toward achieving the objective). OKRs are typically set for a specific period, such as a quarter or a year, and are designed to be challenging but achievable. The OKR framework has become popular recently due to its flexibility and ability to align individual and team goals with overall organizational objectives.

Check this if you want to learn more about OKRs.

What are the Sprint Goal and its relation to OKR items?

Product teams prioritize features based on OKRs. Sprint goals, derived from OKRs, are smaller objectives tackled within sprints. They align the team’s progress with organizational goals, guiding development efforts effectively.

The sprint goal is a clear and concise objective that a Scrum team aims to achieve during a sprint. It should be measurable and focused on delivering a valuable increment. An increment is a step towards the final product that is usable and adds value to the stakeholders. The sprint goal and increment are closely related because the sprint goal guides the team to deliver a coherent and valuable increment.

How to Create the Sprint Goal?

To ensure alignment between Sprint Goals and OKR Items, we recommend first defining the Sprint Goals at the start of every sprint, making sure they are in line with the overall OKR Items. Then, break down the Sprint Goals into achievable tasks within the given time frame. Finally, prioritize the Sprint Goal Tasks based on their contribution to achieving the OKR Items.
It is essential to measure the progress of the Sprint Goal regularly during the sprint. Any necessary adjustments to the tasks should be made during the sprint to keep them aligned with the key results. By the end of the sprint, achieving the Sprint Goal should contribute to achieving the key results.

This is how we break down OKR items into Sprint Goal tasks at Insider.

When to identify the sprint goal?

While planning a sprint, it’s common to face unexpected issues that could obstruct the team from achieving its goals. Such unforeseen dependencies or obstacles can make it challenging to address them during the planning phase. Therefore, having a refinement process in place for sprint goals is crucial. During the Backlog refinement sessions phase, team members should have a general idea of what they will be working on during the next sprint, but the finalization of the sprint goal should happen during the sprint planning phase. This allows for any last-minute adjustments or unexpected issues to be addressed before finalizing the sprint goal, which can help ensure the team stays on track to achieve its objectives.

As previously mentioned, certain teams faced difficulties setting the Sprint Goal, leading to some team members being uncertain about what they would be working on in the next sprint. Additionally, some of the Sprint Goals did not contribute to the progress of the OKR items, resulting in an increased cycle time of the KRs. To address these issues, we collaborated with our Scrum Masters to develop an OKR refinement activity that would help the team gain a better understanding of the bigger picture and overcome obstacles on time.

The OKR refinement session occurs before the team begins working on a specific KR. During this session, the team brainstorms ideas on implementing the feature and then divides it into Sprint Goals. After completing the OKR Refinement activity, we bring the Sprint Goals to our regular Backlog refinements, where we refine and create Sprint Goal tasks until they are ready to be taken to the Sprint.

The process we use to identify the Sprint Goal.

OKR Refinement

OKR Refinement Activity and Participants.

As you can see in the illustration above, the whole team participates in this activity. Each session should have inputs and outputs. On the left, you can see we bring the OKR item as an input and we leave the meeting with Sprint Goals as outputs. Now, let me explain it to you by giving an example.

Let’s say you have an OKR like this:

Objective: Increase user engagement on our e-commerce platform

Key Results:

  1. Implement a product recommendation feature based on user browsing history and purchase behavior, leading to a 20% increase in click-through rates and a 15% increase in average order value.
  2. Develop a “Shop the Look” feature for our fashion category, resulting in a 25% increase in page views and a 10% increase in conversion rates for the category.
  3. Add a user review feature to product pages, resulting in a 30% increase in user-generated content and a 5% increase in conversion rates for products with reviews.

Now, our team has decided to work on 1st Key Result.

Below you will find the template we use for our refinement session and the agenda. Feel free to adjust it according to your team’s needs.

OKR Refinement template.

OKR Refinement agenda

  1. Introduce the feature we want to implement (in our case it is 1st Key Result) (5–10 mins)
  2. Craft the Main Goal. What do we want to achieve with this Key Result? What value are we going to bring to our customers? (5–10 mins)
  3. Brainstorming with the team. How can we implement it? What do we need to do? Are there any dependencies? (20–30 mins)
  4. Discuss how many sprints we may need to complete the feature. It’s a rough estimation! (5 mins)
  5. Create a timeline. Drag and drop the items we discussed during Brainstorming and place them in the sprints. (20–30 mins)
  6. By the end of the activity, we can see our plan and see what we will be focused on each sprint and we create Sprint Goals.

Here’s an example of splitting the Key Result (KR) into multiple Sprint Goals, with each Sprint Goal representing an increment toward completing the KR:

Key Result: Implement a product recommendation feature based on user browsing history and purchase behavior, leading to a 20% increase in click-through rates and a 15% increase in average order value.

Sprint Goal 1: Develop the data collection mechanism to capture user browsing history and purchase behavior for recommendation analysis.

Sprint Goal 2: Build the recommendation algorithm that utilizes the captured user data to generate personalized product recommendations.

Sprint Goal 3: Integrate the recommendation feature into the user interface, allowing users to view personalized product recommendations on the platform.

Sprint Goal 4: Conduct A/B testing and optimize the recommendation feature to improve click-through rates and average order value.

In this example, the Key Result of implementing a product recommendation feature is divided into four Sprint Goals, each contributing to the overall completion of the KR.

Sprint Goal 1 focuses on developing the data collection mechanism, which allows the system to capture user browsing history and purchase behavior. By completing this Sprint Goal, the team establishes the foundation for collecting the necessary data to power the recommendation feature.

Sprint Goal 2 centers around building the recommendation algorithm. This increment involves analyzing the captured user data and developing an algorithm that generates personalized product recommendations based on the data analysis.

Sprint Goal 3 emphasizes integrating the recommendation feature into the user interface. By completing this increment, users gain the ability to view personalized product recommendations on the platform, enhancing their shopping experience.

Sprint Goal 4 revolves around conducting A/B testing and optimizing the recommendation feature. The team focuses on refining the feature, iterating on its performance, and optimizing it to improve click-through rates and average order value.

Each Sprint Goal represents a concrete step forward in implementing the product recommendation feature, ultimately leading to the desired outcomes outlined in the Key Result. By achieving these increments in successive sprints, the team progressively works towards realizing the KR’s objectives of improving click-through rates and average order value through the successful implementation of the recommendation feature.

Tips

  • Remember that this is just an estimation/forecast. The plan, you created in this refinement session, MAY change! And it is okay!
  • Don’t go too deep into details on how you will implement it. You will have time to refine your Sprint Goals in your regular Backlog Refinement sessions
  • If you identified a dependency you may also want it to include in your timeline (When we should resolve the dependency).
  • If there are some dependencies on other teams. Let’s say you are sharing component ownership. You can invite someone from that team so that they can share their input.
  • When setting the Sprint Goals keep in mind that by the end of that sprint, you should have an increment. Something that can tell you whether or not you’re on the right track.

Final note.
Visit your plan regularly (Backlog refinement sessions, Sprint Planning, Sprint Retrospective) to inspect your progress and make adjustments if needed.

Follow us on the Insider Engineering Blog to read more about our Agile Best Practices, AWS solutions at scale, and engineering stories.

--

--