Andy Grove of Intel fame is credited with a powerful framework for business goal achievement. It is called Objectives and key results or OKR for short. The objective is a clearly defined goal. Key results are the specific measures used to track the goal.
Google adopted this strategy early on with Larry Page crediting it to their repeated spurts of 10x growth. Their success made OKRs part of Linkedin, Twitter, GoPro, and Uber to name a few. In all, many of the world’s top companies rely on this tool to achieve massive success.
While excellent for company wide acceleration, it may be advantageous to apply this methodology to Software Teams. In effect, creating quarterly goals that require cross-department buy-in to achieve the end result of higher quality software more closely tied to business objectives. Be it software as a product or as an internal business strategy.
“The key result has to be measurable. But at the end you can look, and without any arguments: Did I do that or did I not do it? Yes? No? Simple. No judgments in it,” explains Andy Grove in his book, High Output Management. The basic premise is to measure each key result to determine if the objective was achieved.
For example, create a quarterly goal such as grow the business by 20%. To do this, one will need some action items that lead up to it. These are the key results. In this scenario, the key results could be: 1. open ten new accounts with 90 days, 2. sell service agreements to five existing clients within 90 days, 3. raise Google result ranking to top 3 spots for top industry keyword within 90 days.
However, for OKRs to reach their full potential, the goals need to be big. Using the example above, it may be 200% instead of 20. When Gmail started development, it was determined to release with 100mb of storage. A larger number than available by any of their competitors. Sometime during development, that number was raised 10x to 1000mb. It is in these 10x goals that OKRs truly accelerate achievement.
The management team will grade each key result to ensure the accomplishment of all will result in the core objective. In this phase, there may be new key results added, some removed, and edits created. The point is to have the team focused on the achievement with realistic and beneficial tasks.
Next, each objective is reviewed at regular intervals during execution with progress recorded toward the goal. Google uses a 0 to 1.0 scale where ranges between 0.6 to 1.0 are considered success. Other companies use different scales, but the general consensus is to measure progress with a company wide scale where 60 to 70% of goal achievement is desired. Lower and it was not completed, higher and it was too easy.
Objectives are meant to be ambitious, just outside of one’s comfort zone. They are public, posted where anyone in the organization can follow the progress. However, they are not measures of employee productivity or simply a task list. Instead, they help teams prioritize work, reach towards ever ambitious goals, and achieve levels of results previous unavailable.
The point is to have organizational focus that directs entire teams toward common big achievements. To learn more about OKRs, read the book, High Output Management by Andy Grove or watch this Google Video on the topic.
OKRs in Software Development
Agile methods for software have become the norm and are proven to be a good choice for building applications in sync with stakeholder demands, changing requirements, and development limitations of time and budget. OKRs do not interrupt this. Instead, OKRs generate the overall goals of the work, not the method of execution. In fact, OKRs and Agile fit nicely together. Both can be changed mid-process and each is reviewed pre, during, and post development to improve the next iteration of work.
In software development environments, the idea of creating big goals is often limited to the project or sprint currently being worked. Teams seek to achieve greater quantity of work and improve quality of deliverables by incremental amounts, not in terms of Big Hairy Audacious Goals (BHAG). Even popular literature on the subject limits thinking to small improvements over time.
The reason is the current view of software development being a means of production similar to carpentry or manufacturing where a 5% or even smaller improvement is cause for celebration. For this to change, Software Managers and in turn teams have to experience a quantum shift in expectations.
In contrast, the best sales teams often reach 10x goals. While different in regards to work, sales is still a human centered endeavor. That is, the salesperson has the same amount of time as the engineer and both deal with unknowns out of their immediate control. The difference comes from a focused belief in achievement.
10x for Software Teams
Imagine if a development team committed to a 10x increase in delivery for the next quarter. What would it take to achieve this? Unlike other professions, software teams can automate tasks. They can also reuse existing code from past projects, including Open Source systems from other teams.
Most compelling and the one found to be most advantageous is to change the order of development. Instead of starting with the user interface and working toward the back-end processes, start with the back-end API and user interface designs at the same time with review and feedback from the front-end developers. Next, complete the front-end with assistance from both sides of design and API.
The reason this works is the entire team is constantly engaged in the process at all levels together. No part has to wait on the other side to complete before being able to work. If the team has automated testing with continuous integration mechanism, it will further reduce development time.
Pair this with formal algorithmic proofs and the entire code base is almost self-tested. Adding human powered Quality Assurance to the mix then becomes part of the continuous process for all parts of the project. Thus, no part of the team is idle and everyone involved is held accountable for the end result, not just their tickets.
If the team fails to reach 100% of this goal, the result will likely be a 2x or greater increase in deliverables without sacrificing personal time or working any harder during the day. Instead, it is just a change in focus where everyone on the team is engaged to cultivate maximum bandwidth of work while management guides the process.
Sales and marketing have been growing with OKRs for over 40 years. Software Development has been left out due to the silo created. However, by adopting OKRs, software teams can accomplish far greater things than most would think possible.
Pair this with assistance and buy-in from other teams within the organization and the entire software process can turn into the most strategic part of the company. Evolving from a method of manufacturing to the driver of innovation and strategy.
To start, the entire team needs to understand and adopt the OKR process. It is not a to-do list, a reporting burden, or a means to measure employee performance. Instead, it is a driver for team accomplishment through strategic focus.
To learn more about improving software teams, see https://toddmoses.com.