OKRs: First Steps for Crushing Your Objectives and Key Results

If you’ve arrived at this post, you’ve probably heard of OKRs but maybe you’re looking for a bit more of an introduction to them. Not to worry! We’ll keep this light and practical for getting started.

OKRs are a framework for helping define, communicate, and measure progress towards goals. Their intention is to not be specifically top-down, but instead, there’s goal setting and transparency that works both ways. Objectives, the ‘O’ in OKRs, are essentially single sentence that communicates what you’re trying to achieve. These should drive the point home at a high level, and there’s nothing wrong with making them feel exciting.

Key Results, the ‘KR’ part of OKRs, are the metrics that you will be using to gauge how successful you are in achieving your objective. Usually, you group about 3-5 key results with an objective, but if you’re just getting started with this I don’t think there’s any issue with trying to just nail down ONE. It might be trickier than you think!

An OKR Example

Have a world-class service that operates at the speed of light, as measured by:

  • Decreasing response latency on API A from 100ms to 60 ms
  • Increasing throughput on API B from 10 MB/sec to 20 MB/sec

In the example above, the first line is the objective. For this OKR, the objective indicates that we’re interested in having a FAST service. The two line items are the key result portion of this OKR and they both describe two different metrics that we’re looking to improve in very specific ways. It’s also important to mention that like with any good set of goal setting, OKRs are timeboxed. In your work environment, you might do these annually, semi-annually, quarterly, or some other interval that allows your team to make progress.

Check out this video for a further OKR explanation!

YouTube player

A Closer Look at Key Results of an OKR

One of the most important parts about setting your KRs is that these should be measurable and specific with a start and end measure. These are supposed to be used to gauge your success when reflecting back to see if you accomplished your objective, so it’s important that they represent something you can measure.

And you’ve probably heard something like “You get what you measure” before and this is VERY true for OKRs. If you put a set of metrics in front of a team and tell them to optimize them, generally you’ll get results specific to those measures! If they don’t actually tie back to represent your objective well, you might get awesome progress but for the wrong reasons.

Another call-out is that KRs should not be binary. For example, going from 0 to 1, on to off, or going from a feature not landed to a feature landed don’t really make good KRs. These might be specific tasks you need to do to help influence the metrics, but they don’t lend themselves well for progression.

Why?

Binary / Boolean / Yes-No – Not a KR

Consider an example where you might do 99% of the work in your time period and miss landing the feature that enables allllll the goodness for your change that gets you that huge performance boost. From the KR perspective, that’s still a 0% improvement until it’s landed.

How were you tracking your progression to reaching your goal if the entire time you were pinned at 0% progress? How does your team feel to have 0% on target after all the hard work that went into something? How do your stakeholders feel when it’s the last week of your period and you’re still trending at 0%?

Nobody is saying it’s easy to avoid, it’s just that it’s not very helpful to pick KRs like this for your OKR. It’s also helpful to think through situations like this and maybe find ways where you can incrementally deliver functionality to avoid these all-or-nothing situations in general! So ideally, your measurements should be on a sliding scale that allow you to demonstrate progress towards a goal.

Ambitious Key Results

Finally, the KR’s you pick for your OKR should be ambitious but achievable. One of the major purposes of using OKRs is getting alignment to drive change in an area, so the “spirit” of the KRs you’ve picked should be understood.

If people find these KRs too easy, then you’re not necessarily getting the most effectiveness out of setting up OKRs to help rally progress in an area. However, if they’re too challenging this might be demotivating if people feel they can’t make any progress. I personally think that aggressive KRs can be great if your team can truly influence the KR metrics in meaningful ways.

… What If There Aren’t Metrics Yet?

Right, so if this is all making sense so far you might be thinking through some potential scenarios relative to your job/team/product/service and thinking “I’d love to improve X, but… we haven’t been measuring anything. How can we even have OKRs if we can’t measure? Isn’t that a requirement?”. Technically, you’re right. But not to worry! We all have to start somewhere.

Personally, I believe getting started with OKRs is the most important part. No metrics yet? Instead, spend time to figure out what you WOULD want. Then, start building the measurements out and try making your improvements as you’re figuring out how to measure things. Is that breaking the rules? Yup, you bet it is. Is it going to be a learning experience and something you can improve on next time? Absolutely. Remember, the “spirit” of the OKRs you’re using is to help drive change.

Going through the OKR process is still a useful exercise, helping you to envision what success criteria might look like. While you may not have rock-solid super granular metrics now, maybe there’s some other things you can infer in the short term to guide you! You don’t have performance telemetry being reported with awesome dashboards? No sweat. You’ve been hearing from customers about 10x per week now that performance isn’t up to par? Great! Start with that. Your goal is to try making improvements such that you hear on average 6x reports about performance per week, and in the meantime, you’re going to start building out that awesome performance telemetry and dashboard. A rough metric might be better than no metric, and maybe next time you want to focus on this, you’ll be in WAY better shape with your new telemetry.

As you’re building metrics out, consider if they something the stakeholders care about. OKRs ideally focus on some understandable business value. Another important aspect is if these metrics are something that change-drivers (i.e. maybe the engineers or other roles on your team) can influence. If people are investing all this time and effort to help influence metrics but the actual measure is something they don’t directly affect, it can be frustrating. Ideally, your metrics are something with clear business value AND something your team feels they can directly influence.

Another thing to consider is if something warrants a rolling-average or trend compared to a value at a single point in time for the metric to be measured. Often times with things like services you might be concerned with trends, and in order to avoid statistical blips or other factors causing noise in your measurements, it might make sense to average your measurements out to smooth the numbers! Continuing with our performance example, if you reached your target one week because you measured your service over a holiday when nobody was using it and the small amount of traffic therefore looked incredible, that might not be a great representation of your actual progress. Conversely, if there was some type of outage or incident that caused your measures to temporarily be outliers, you shouldn’t toss in the towel and give up! Rolling averages can be your friend here but ultimately this is something you’ll want to think through.

Finally… Just Get Started With OKRs!

We just talked about all these “rules” for good KR’s, but especially when you’re getting started, you won’t get it “right” the first time. That’s okay. It’s going to take time, practice, refinement, and building out new measurement methods you might not have yet! Until you’re in the groove of setting up good OKRs, think about what the “spirit” of the OKR is supposed to be. Focus on how your objectives and key results will motivate your team to drive change in the areas that matter.

When you’re creating your next set of KRs, reflect on the previous ones! Continuously improve! Were your goals too easy? Too hard? Were you “gaming” the metrics or did your metrics line up with the “spirit” of the KRs? Did the metrics truly tie back to the objective in the end? Were those responsible for delivering changes empowered by the KRs? There’s so many things to reflect on and try to make sure you’re doing better next time. It’s definitely a process.

At a minimum, OKRs should help focus the team’s attention… And that’s a win even if you don’t have the most perfect metrics and clear-cut objectives. Try some things out. Reflect on your success. Get better. Repeat. You got this!

author avatar
Nick Cosentino Principal Software Engineering Manager
Principal Software Engineering Manager at Microsoft. Views are my own.

Leave a Reply