Key results can be more granular and less granular. Think of it as a continuum. Some are continuous:
- Improve the time to first byte for the homepage by 500ms.
This one is continuous, because time is continuous. Realistically it will be quantized into milliseconds, but that's nitpicking.
You can get less granular:
- solve 500 linting errors
This one is kind of continuous, but there are 500 distinct steps. Each week it is feasible that you can solve a handful, and can see movement and improvement.
- add 5 unit tests to XYZ module
Now we are getting much less granular. It is a checklist of 5 TODOs. But you can track the progress. Its unlikely each week you will make an improvement, but on some weeks you need to if you want to hit "5" by the end of the quarter.
- hire a new DevOps engineer
This is a binary, checkbox, or hit-or-miss key result. Sometimes they makes sense. It's not great if they make up the majority of the key results on an OKR. The good news is that you can make it more granular. Create a plan for hiring an engineer. Break out the steps, assign a percentage to each step, and track it as a 0-100% key result. This way, as you write a job description, post it, create a pipeline, review resumes, and hold interviews, you can track and share the progress.