Some early thoughts on OKRs

Firstly: they’re recursive. My objectives are my manager’s key results. In turn, my line report’s1If I had one objectives would be my key results. This gives everyone in the chain freedom in how they implement their objectives, while keeping them aligned to the higher-level goals that are at the top of the chain.

Of course, deciding what that highest level objective actually is can be difficult. But that’s why we pay the people at the top so much money.

Second: in some quarters there’s a false dichotomy. ‘Objectives’ are high level, broad-brush, while key results are quantifiable. I believe this is false because, depending on your level of granularity, everything is high-level and broad brush or qualitative. For example, a very high level qualitative goal might be “Capture that hill over there”. There are some key results under that: destroy the walls, kill 80% of defenders, keep losses below 10%.

Except: I think that hill over there is a quantity. It’s the one over there. Not the one, say, to the east or west. So there’s a higher level objective – win this battle – which has a key result of capture that hill over there.

Equally, destroy the walls has a number of key results. You have to acquire a wall-destroying mechanism, you have to find volunteers to brave the burning oil and vicious insults…

I fart in your general direction!
Your father was a hamster and your mother smelled
of elderberries!

Implementing a system like this requires high levels of contextual understanding, massive amounts of trust, and the budget to act autonomously. Given freedom to act, people can surprise you – they might recruit a spy to capture the hill fort bloodlessly, but they might also destroy it from orbit. Wider context – the why of this particular objective – gives people limits within which to work. There are plenty of funny stories about AIs that, given open ended key results, do weird things to meet them 100% of the time.

Where does this leave me? I think that OKRs are a high-order idea, and can’t really be implemented without doing the work to make your reports (and therefore entire hierarchy) more autonomous and contextually aware.