Reward mechanisms: Incentivising quality

Show me your reward mechanisms and I'll show you your problems.

I've been thinking a lot about reward mechanisms, how they incentivise us and how they can be gamed. They exist to ensure we're going in the right direction, defining a win scenario as tightly as possible, and if they're poorly chosen they can lead to a company collapsing slowly over time. Like any tool they are both a blessing and curse.

Reward Mechanisms

So what is a reward mechanism? A reward mechanism is a process that encourages certain behaviours by offering a reward at the end. Exhibit the behaviour, get the reward. Typical examples are bonuses at work for reaching targets (e.g. 10% increase in sales) or getting a high after a good workout. In business and biology they exist to encourage behaviour in a system, under the assumption the behaviour is beneficial to the system overall.

We are natural problem solvers, it's why we like games. If you give us a well-defined win scenario (do this and get a reward), then we will figure out how to do it in the most efficient way possible. It doesn't matter who you put in this system, you will get the behaviour you encourage. Whether that's good or bad behaviour is another thing altogether.

Positive Feedback Loops

In systems thinking there is a concept called a positive feedback loop. A feedback loop is a cycle were the output of one process becomes the input for another, sometimes that process is itself. A feedback loop becomes "positive" when the output of the process triggers the process again to a larger degree, causing the loop to trigger again and again, accelerating and re-enforcing itself.

Positive feedback loop

Now "positive" doesn't mean that the process is beneficial, it just means that it's self re-enforcing. It's quite common to have positive feedback loops that are ultimately detrimental. These are typically called "vicious" cycles, while "virtuous" cycles are ones that encourage beneficial behaviour. A common example of a vicious positive feedback loop is crunch mode. You have a tight deadline, so you work harder, this gets positive results initially but quickly leads to shortcuts and mistakes. You lose sleep and get tried, so your deadlines slip further, so you work harder, leading to more mistakes. The cycle repeats until you crash and burnout (this is the common outcome of vicious positive feedback loops).

Vicious Business

Reward mechanisms are fascinating because they become the foundations of positive feedback loops. When you create a reward mechanism you inevitably create a process that is self-perpetuating. People are rewarded for the behaviour so they will repeat it, and if you're not careful, that behaviour can lead to negative long term consequences.

Let's look at two common reward mechanisms and how they can lead to vicious positive feedback loops:

  1. Fire fighting
  2. Ideas that make money

Fire fighting

1. Fire Fighting

Does your organisation reward fire fighting? Does it promote people that "rise to the challenge" and "save the day" when things go wrong? Congratulations, you are selecting for people that take shortcuts and will actively ignore fires until they become room engulfing blazes.

This is the dark side of reward mechanisms, in the above org you as an individual are incentivised to ignore fires (and if you're a little more selfish, actively create them). There is no reward in place for creating a robust and stable system, you will in fact hurt your chances of success by doing what is typically considered a good job.

This is why reward mechanisms are so tricky. What seems like virtuous behaviour in the short term (putting out fires) leads to vicious behaviour in the long term (actively letting the system get worse). This isn't because the people are immoral or lazy, it's just that people optimise for success, and they are simply following the script you provided.

This is a straight forward example with a surprising consequence, let's look at one that's a little more insidious.

Ideas that make money

2. Ideas that make money

What about companies that reward good ideas? If your idea gets into the product and makes money, then you should be rewarded, right? That seems obvious, we want people to come up with ideas that makes us money after all, it's win-win!

Well, it's not quite that simple. If that's the main reward mechanism in your company then you're guaranteeing that the product will rot over time, and you will lose your competitive advantage.

First off, in this system people are incentivised to come up with ideas, and since ideas are easier to produce than they are to execute, you will have WAY more ideas competing to get into the product than can actually be implemented. Developers are expensive after all. It also means that people will prioritise their ideas for execution over others, so any time not spent creating ideas will be spent evangelising and prioritising them, all in the hopes they get into the development pipeline. This inevitably become the majority of what management does, generating ideas for execution rather than enabling execution and defining long term strategies. Everyone is competing for a limited resource.

To schedule all this work you'll need more PMs. To do their job they'll bring the developers into the conversation to estimate the backlog, which slows things down even further. There's no incentive to have a small backlog, so it will keep growing year after year, with ideas constantly being shuffled. That's cognitive inventory that brings no value, it just slows you down. Eventually you'll declare backlog bankruptcy when the feedback loop collapses under its own weight.

It gets even worse at the execution level. Management is incentivised to get their ideas out there, and given they are the controlling group, execution will become focussed on feature delivery over all else. In other words, the development team becomes a feature farm. Most of these "features" won't being any value, most ideas fail after all, but they'll hang around because this system doesn't encourage reflection. If one idea didn't work out, and you have ten others, you're going to focus on those ten ideas, not the failed one that can't profit you. And since there's no reward mechanism for removing features that failed, they'll get left in the product, sitting around like unused inventory clogging up a work station, slowing everything down for years to come.

Here we see how what looks naively like an optimal reward mechanism can lead to negative behaviours. As a vicious positive feedback loop this one is particularly common and dangerous. It has the same fundamental flaw of the reward mechanism above, the short term behaviour it incentivises has long term consequences that lead to a decaying product. How do we work around this?


Incentivising Quality

Virtuous reward mechanisms are required for a healthy business. Vicious reward mechanisms like the above guarantee that the long term will always be sacrificed for the short term. It doesn't matter how much you talk about the importance of quality, without encouragement the behaviour won't happen. So if you're really serious about quality you will create a reward mechanism for it.

For software we have a fairly good idea of what this looks like thanks to the research of Nicole Forsgren and Jez Humble in their amazing book "Accelerate".

Quality in software is directly correlated to speed. If you want quality then you reward teams that than can go from idea to execution the fastest, accelerating over time, delivering value. Put control of how that happens in the hands of those executing and reward them for acceleration. Reward them as a group.

This reward encourages agility as the team will actively:

  • Remove unused features (they slow down dev)
  • Improve their development processes (fewer bugs)
  • Improve their release processes (faster bug fixes)
  • Refactor the system over time (faster development)
  • Align product with the code (easier communication)
  • Migrate to the latest dependencies, security updates and infrastructure (easier to hire devs)

The cost of change in this system will always be low, it is optimised to adapt to the market. With this reward mechanism you are actively saying that you reward long term agility. You're aligning your words (quality is important) and your actions (so we reward quality).

Spotting reward mechanism triggered feedback loops

What about you, have you noticed any negative reward mechanisms at your job? What behaviours are they incentivising? What new rewards could you introduce to change behaviour? Reward mechanisms are powerful, and like anything powerful they should be used wisely. My hope is that we can use rewards mechanisms to build healthier companies, for the customers, the employees and the owners.

Worst case scenario, you'll have something interesting to discuss at work. ;)


Expert help

Have a codebase where change is expensive and risky?