Hacker News new | ask | show | jobs
Ask HN: How to design a fair bonus system for software engineers?
11 points by drag00n 2472 days ago
Should there be one at all? What are some good examples? (Fair in the sense that engineers feel that way)
4 comments

Take a step back and answer why do you need a bonus system ?

Dan Ariely and other Psychology and Behavioral Economists claim that the value of bonuses is not big or even negative [0].

My experience is that bonuses tied to performance leads to a bad work environment, and if at all benefits only part of the people- the backstabbers or the geniuses [0] https://www.wired.co.uk/article/dan-ariely-bonuses-boost-act...

Like so many studies about bias and heuristics, this one probably does not generalize well beyond trivial tasks. I trust that the research was executed well, but I doubt the results say anything definite, other than that in trivial tasks performance can't be increased by increasing rewards.

Examples of the "work tasks" in the studies are: adding numbers and tapping a key as fast as possible. You can probably imagine quite well that it's very easy to hit your maximum performance in these tasks and you can't do much to exceed it no matter what the reward. It seems a bit simplistic to use these studies to claim that bonuses can't increase quality.

The article also completely disregards that bonuses can be used to improve principal-agent alignment, and probably many other factors that are apparent in the more complex, real world that exists beyond tapping a key as fast as possible.

My workplace recently started tying yearly bonuses to "performance goals" which are set throughout the year. I think the intention was to get employees more "invested" in their performance and value contributions. However, all it's done is make goal setting another set of hoops to jump through for HR. You can pretty set any goal you want, and as long as you have something on paper, management sees it as "good enough" and you still get your bonus.

I really loathe hr-mandated performance/improvement goals. Tying it to bonuses just created another level of stress to the whole process, and doesn't really add any value for anyone.

I have experience with the same setup - quarterly goals split between project goals and some training/process improvement type goals.

Most of the time it seems people just write down what they should be doing anyways, which defeats the purpose! In school "bonus" always meant going above the regular work (not that I am advocating tying additional money based on working more than your normal job - that seems like it would negatively effect morale over time!)

There’s a video that I really like, talking about the same research that knowledge based jobs, bonuses decrease performance. https://m.youtube.com/watch?v=u6XAPnuFjJc&feature=player_emb...
Punished by rewards is an interesting book on the same lines.

https://www.amazon.com/Punished-Rewards-Trouble-Incentive-Pr...

If you would take a bonus and make it part of my salary, I could deal with that. However, when there's a bonus that makes one company's offer $35K more lucrative than another, that tips the scales.

I've never seen bonuses lead to poor work environments. Can you elaborate on some of your experiences?

I can give a correlation (not really causation) example:

An external recruiter talks to an engineer who graduated uni last year and has been a one-man show at a nonprofit. The engineer is looking for a place with mentorship and code review. Recruiter says he can get $120k total comp.

He goes to the company and tells them about a dev whom he’s known for years that a brilliant senior-level engineer who’s led the technical team of a nonprofit startup accelerator. Company interviews the engineer. Gives him an offer for $95k.

Recruiter negotiates for $25k of bonus opportunity and the contract is signed. Engineer joins and spends his first month trying to figure out what team he should be on. He bounces around a few different projects with a mix of success, package management bugs, and utter confusion. Gets some of the bonus. After a year, he learns of how the recruiter sold him in the final conversation with HR.

Bonus is a way of trapping someone at the company until the one time of year when the bonus is given out, so you can better plan for attrition.
I thought they were sometimes prorated? I suppose that depends on the company policy though!
I've work in environments with and without bonuses. I don't disagree with what 2rsf wrote in his/her comment about bonus can sometimes create a backstabbing environment, however I find this is when it is done poorly and when that is the case they suck really bad.

Bonuses can be done in almost an unlimited number of ways. You have to decide what are you rewarding, or why are you trying to give a bonus.

Some companies start paying bonuses to avoid raising salaries, this -can- be ok if the person is very senior and making a high salary already and so paying a bonus is a way to reward good work when the company is doing well without driving the persons salary so high they become unemployable anywhere else if they would choose to leave. This can be bad when companies pay bonuses to keep salaries artificially low for employees as a whole, it will backfire majorly.

Other companies pay bonuses to all employees based on seniority (time with the company & level of position) and do so as a profit share of sorts. This is very common at profitable businesses. I consulted at a business that was netting $10Million a year with 8 employees, even the admin assistant for that office was getting $20k+ bonuses in a quarter cause the owners treated everyone super well and as a side affect no one ever wanted to leave.

I also worked at a company where management had a bonus bool twice a year based on performance, 20% of all profits for the company were given to anyone at the manager level of above. This caused a lot of resentment from the engineers as they felt slighted since without them the company did have a product. Frankly while I was getting paid bonuses there I agreed with the engineers and the production people. They eventually went to a split bool, 20% to management, 10% to all employees, still felt a bit wrong in some ways but it made most people very happy.

I also worked at a software company where everyone made bonuses every quarter if your project/product was profitable. So there were teams that saw tiny bonuses of like $3-4k, while teams with more money coming in and more profit could see $40k bonuses. While logical, you can probably predict pretty fast what that can do to teams & a company.

So as for how to handle engineer bonuses. My 2 cents. If you pay bonuses make sure the process is clear to everyone and that people understand it is based on whatever factors you have chosen. With that, assuming the factors are fair and clear bonuses are almost never bad in my experience. The only bad ones are where bonuses are paid in order to avoid salary increases when people still have headroom on their salary based on industry norms (although there are a couple of exceptions here when in a startup and money is tighter).

The surest and most effective way to align developer interests with company interests is to give equity. Bonuses in software engineering get very complicated and messy very quick, and probably shouldn't be used outside of some specific scenarios. Equity can also help foster a sense of ownership, which is probably the best high level driver for good and profitable code.
Okay, but then I have the same question: how do you give equity in a fair way? Is it some formula of who came earlier or it depends on current company valuation?
Are you asking for individual engineers or teams of engineers (all members of the team get the same bonus)?
I would say individual, but then again it's a question of what is more fair -- individual bonuses, or team bonuses.