At Gtmhub, we are big believers in OKRs. Shocking, I know.
In this post, I am going to write about our experiences in implementing OKRs, what went well and where we made mistakes.
Generally, it is advisable to know why one is doing something – same applies to OKRs. And no, because Google is doing it – is not a good reason.
We believe that OKRs bring three main benefits to any organization:
- and Transparency
The reasons why an organization may need to improve at any of these are different. For example, whereas a global corporation with tens of thousands of employees may have problems with disengaged employees, startups have problems with employees that are too engaged. Big corporation may have problems with too many policies in place to implement transparency, startups on the other hand many times simply don’t have time to communicate properly.
At the very fundamental level, OKRs help companies of all sizes achieve efficient prioritization.
It is for this reason that we embraced OKRs.
A friend of mine has a very good maxim about introducing a new process: simple beats powerful. We have followed that advice.
We started with a mission. A short statement on why do we exist.
Well defined mission is crucial for OKRs process to work. Without it, it is basically impossible to build a meaningful hierarchy of objectives.
As a next step, we’ve decided we’ll define only Objectives for all team members – ignoring Key Results for a moment. This gave us an ability to focus on the big picture – what is it that we want to do in the next quarter, without getting bogged down in the details of how exactly are we going to measure it.
Surprisingly or not, it is at this step we have started to reap the benefits of the OKRs process. As it goes with startups, everyone got overzealous and before we knew it we had on average of seven objectives per person. Not only is this against the best practices, but just seeing it written down made it crystal clear that we cannot possibly achieve this within a quarter. Next, the painful and equally useful exercise of deciding what not to do begun.
One thing we got right, accidentally or not, was to define Objectives following the hierarchy (as loose as such may be in a startup). As we have started with the mission, the company objectives necessarily had to answer the question: How do they help us achieve our mission? Following the same logic, engineering objectives had to answer the same question: How do they help us achieve company objectives? It is very easy to dismiss this benefit as trivial, but it’s an extremely powerful method of breaking barriers – both vertical and horizontal – within an organization.
The first mistake
OKRs have this characteristic of being deceptively simple. One watches a video – and boom! – it all makes sense, let’s do it. However, to truly take advantage of the process, one has to have a mini epiphany moment. We’ve done what later we’ll see is a typical rookie mistake, we went too tactical.
OKRs are not a tactical, project management tool.
For example, one of our engineering objectives was “Implement onboarding wizard“. This was wrong on so many levels. First, it’s a task – not an objective. Second, it’s not qualitative. Third, it’s too specific – it doesn’t allow the person owning this objective to be creative about it. And so on…
We then went and rewrote this objective as follows: “Increase engagement of first time users“. This worked much better. It was much easier to align this objective with company objectives. The objective stated the intention, while at the same time allowed the person owning it to be creative about how to accomplish it. Finally, what we as a company cared is that users find it easy to work with our system, not that we have an onboarding wizard.
Starting with KRs
Arguably, setting objectives is much more challenging in the beginning than coming up with KRs for those objectives. If objective is set properly, coming up with KRs is pretty simple. Let us take few examples:
- Objective: Grow revenue
- KR: Revenue to grow from X to Y
- Objective: Increase engagement of first time users
- KR: On average each user to have 3 objectives
- KR: On average each user to have 9 KRs
- KR: On average user to log in to system once per week
- Objective: Increase social media presence
- KR: Tweets to increase from 60 to 200
- KR: Facebook posts to increase from 50 to 100
One of the best things about Gtmhub is the ability to have KRs automatically coming from all kinds of systems.
Like most companies, we use all kinds of systems for day to day business. For example, we use Pipedrive as our CRM, Google Analytics to analyze our website, our blog is hosted on WordPress, we use Twitter quite extensively and so on. With automated KRs we get real-time, automated values for all kinds of things that are of interest to us. Some include:
- Website stats, such as visits, sessions, bounce rate, session length and so on (Google Analytics)
- Twitter followers, retweets, tweets… (Twitter)
- Pipeline size, Average Deal Size, MRR, ARR… (Pipedrive CRM)
- Users, frequency of logins… (Auth0)
- UX metrics (Excel)
- Product statistics, such as number of Objectives created, average number of KRs per Objective and so on (MongoDB)
The obvious benefit of this approach and using Gtmhub for managing KRs is that every function has automated KRs (sales, product, engineering, marketing…). The more interesting, however, was the sudden ability to track cross-functional KRs. One of these KRs is conversion rates from trial to paid (mash-up between Auth0 and Pipedrive CRM data). And, trust me, once you realize this – it becomes addictive.
Recap or things we’ve learned
As we’ve passed through our OKR quarters, here is the list of things we’ve learned:
- Having a mission is absolutely critical as it makes objective setting simple and meaningful
- Start with defining objectives, think of KRs or how you measure success as a next step
- Keep things simple; one objective delivered is better than five not touched
- Leave room for interpretation in objectives – don’t assign tasks
- The real decisions you’ll make are about what are you NOT going to do
- Execute ruthlessly, once done 😉