A Limited Defense of SLOs - jrott

A Limited Defense of SLOs

Introduction

Management by objective goes back to Taylorism. It has been hated in many different ways since then. It has tons of problems, but it does provide some value. This is because it provides focus and solves alignment issues when it’s well implemented.

Of course it’s frequently poorly implemented which can cause widespread resentment. People will feel like the whole process is a political mess at best and dehumanizing at worst. Tying KPI’s to individual contributors is hard to do without a strong sense of what doing their job well entails. It is very easy to completely devalue glue work. It’s usually better to have objectives for the team as a whole.

There are also more tactical versions of management by objective such as service level objectives. SLOs are better liked then other forms of management by objective because they are set in a more decentralized manner but they have the same flaws just at a smaller scale.

Why do people hate MBOS

Having people’s bonuses tied to objectives intuitively seems like the right thing to do. It has a lot of potential to go really wrong though because you’ll get exactly what you measure. Many times our measurements are imperfectly measuring the actual desired business outcome. Once someone’s livelihood depends on them hitting that measure they will do what they have to. This can go wrong in really horrible ways like at Wells Fargo.

Team objectives can still go wrong and be gamed. However since there are less direct financial incentives tied to them there is usually less desire. This means that managers shouldn’t be directly incentivized on team objectives as well but instead on a mix of improving numerical objectives and qualitative measurements. Of course there are more limited forms of management by objectives such as SLOs for measuring system health. These more limited forms are usually less controversial but are still managed by attempting to hit a target. They’re safer than objectives directly related to people but they can still go wrong if they’re overly focused. For example it’s very easy to get super focused on uptime instead of making sure user needs are being met. Also latency measurements are famous for being ok at the percentile that is measured and then terrible above it.

For measures to be successful they need to not change much over time. Or at least stay the same for an agreed upon amount of time. This means that it’s ok to iterate on a given measure but everyone needs to know it’s being iterated upon and that they shouldn’t set their own goals based on it yet. People need to know what things are actually important and what is a guess. Sometimes it might just be that something is directionally important but you are putting a number on it to have a target. For example the goal might be lower churn to 2% but really you just want lower churn and 2% seems ambitious but achievable. Now of course in reality that could be an easy number to hit or basically impossible but the aim is lower churn.

The other major problem with management by objective is unintended consequences. Once something becomes the measurement it’s very easy to lose the intent. This can be partially countered by having a mixture of measures that are important, for example speed and defect rate. However at some level it takes actually paying attention to what the unintended consequences are and shifting as you learn more.

This shifting of objectives can make people feel very frustrated. To avoid this the shift should only be in direction or emphasis not making people go in a totally different direction. Business reality changes though so sometimes direction has to radically change. When that happens transparency about what is going on is critical. When someone is involved in the change of direction they mind it much less.

If objectives matter, feel attainable, and people are involved in setting them they can be incredibly motivating. When it’s done poorly though it’s rife with unintended consequences and can cause people to give up. Once people see a goal as impossible they will stop trying or try and redefine the goal. This means that goals should be stuff that people can actually do not just things that sound nice.

Objectives that people own need to be things that they can actually affect. This seems obvious but it’s very easy to create goals that aren’t actually in people’s control. Since the goal of actually having objectives is to give people something they own, having goals that aren’t in their control misses the point. On the other hand, numbers that people can move will start to improve once someone feels like they own that number.

If people are owning something it’s important that it actually meaningfully affects the business. Don’t make them just another hoop to jump over. Instead it should have a meaningful effect on the business. This means that first order goals for example revenue should move when the objective goes up. If this isn’t being seen constantly it’s probably time to rethink the objective and find something that will actually improve the business.

This is a big part of the iterative part of setting objectives. It shouldn’t just be a one and done exercise that comes down from on high. People on the ground often have a better view of what will make an impact in their area. Ultimately the high modernism of KPI’s needs to be combined with the knowledge of the people doing the work for the objectives to be meaningful and really drive the business forward.

Advantages of OKRs

The biggest advantage of having OKRs is that they provide focus on some key metrics. By making people actually have a limited set of priorities more can get done. Actual focus times are one of the most important things to actually being successful. Making it clear where people should be focused is incredibly important to actually develop momentum in one direction.

Letting people see what is important allows them to create objectives and focus on the same things as well. The process of actually putting numbers to what success and failure look like means that there is shared acknowledgement of what good looks like.

By actually getting people aligned on what they want, it’s much easier for people to feel empowered about what they are working on. If they feel like they actually own something and have agency over the decisions they make they will try to drive the business forward instead of waiting to be told what to do.

High agency isn’t just an inborn trait but is also something that we learn from the culture around us. Actually giving people agency and ownership is critical to allow for real high performance. Software development isn’t done by robots and the best engineers don’t just crank code all day with no concern for business outcomes.

To actually have a successful company people need to care about customer results.This means that success for the whole business needs to be tied to external facing metrics. As many people that are involved in the business should be as well even if it’s not revenue stuff like Net Promoter Score can be used. Especially in a large enterprise it’s way too easy for people to just feel like cogs in a machine. Making it so that they see the impact they are having is great for making it possible to be motivated and to see what is actually important.

Getting people coordinated and working on stuff that is important is one of the hardest challenges in business. In a large enterprise it’s easy for people to drift off into a million different directions and create goals that are actually working at cross purposes with each other.

Conclusion

Management by objective is flawed and can easily go off the rails. However, making it so that everyone knows what is important is valuable. Well chosen objectives can drive a business forward and provide focus. If it’s done with care and people at all levels are involved in setting the business goals it can make a ton of sense.

Creating goals and managing them is a worthwhile activity. To do it well requires flexibility and a willingness to listen. It’s not just about putting ambitious numbers out there and forcing people to hit them, that’s a recipe for disaster. Instead the goal is to create a culture where everyone has goals that work together and where improvement can be rewarded. Being human and having goals don’t have to be in conflict with each other. Things can be measured and people can still be treated well.