This morning, while reading one of Coding Horror's classic blog posts on software schedules, On Our Project, We're Always 90% Done, I came across an essay from Mary Poppendieck, which argues against rewarding team members by merit pay.

If you are a software developer or a manager, I highly recommend reading this thought-provoking article. It can be downloaded here as a PDF document. Here's my summary of highlights of the document. It lists the major disadvantages and unintended side-effects of incentive pay for your team members. 

Destroying Intrinsic Motivation

Once employees get used to receiving financial rewards for meeting goals, they begin to work for the rewards, not the intrinsic motivation that comes from doing a good job and helping their company be successful. Many studies have shown that extrinsic rewards like grades and pay will, over time, destroy the intrinsic reward that comes from the work itself.


Ranking people for merit raises pits individual employees against each other and strongly discourages collaboration, a cornerstone of Agile practices. Even when the rankings are not made public, the fact that they happen does not remain a secret. Sometimes ranking systems are used as a basis for dismissing the lowest per-formers, making the practice even more threatening.

When team members are in competition with each other for their livelihood, teamwork quickly evaporates. Competition between teams, rather than individuals, may seem like a good idea, but it can be equally damaging.

The Perception of Unfairness

People perceive unfairness when they miss out on rewards they think they should have shared. There is no greater de-motivator than a reward system that is perceived to be un-fair. It doesn’t matter if the system is fair or not. If there is a perception of unfairness, then those who think that they have been treated unfairly will rapidly lose their motivation.

For example, if developers on a brand new project are rewarded, the operations people who worked day and night to deploy the software may feel cheated. The developers who took over the role of maintaining legacy software so others could work on the new project would also feel the pain of unfairness.

The Perception of Impossibility

When people find management exhorting them to do what is clearly impossible rather than helping to make the task possible, they are likely to be insulted by the offer of a reward and give up without even trying.


When we optimize a part of a chain, we invariably sub-optimize overall performance. For example, if the manager only rewards the developers for meeting the schedule, they will make the schedule at the cost of shipping low quality, not tested software. That will put the burden on the support and maintenance team.

What to do?

If you are now convinced that the incentive-pay is considered harmful, the next obvious question is, how do you reward the team members so that they feel motivated to continue doing good work, and not start looking for greener pastures. Fortunately, the article lists a few solutions.

Find Better Motivators than Money

While monetary rewards can be a powerful driver of behavior, the motivation they provide is not sustainable. Once people have an adequate income, motivation comes from things such as achievement, growth, control over one’s work, recognition, advancement, and a friendly working environment.

Improving the Promotion System

Instead of tying salary gains to merit pay, have a good promotion system with different levels. One downside of typical promotion system in software companies is that it encourages solid technical people to move into management as they run out of titles for technical roles.

Instead, introduce multiple levels of promotions for both developers and managers. Establish clear promotion criteria for each level. When someone has met the criteria, promote them.

To summarize,
Make sure that people are fairly and adequately compensated, and then move on to more effective ways to improve performance.