A reader asked about best ways to provide bonuses to developers. I’m not a big fan of bonuses. First, it is hard to be objective about how much bonus a developer or designer should get (as compared to salespeople, investment bankers, and others who make a measurable, specific contribution). Second, people tend to become entitled about bonuses, and grow to expect them every year without fail.
So here is an ideal compensation ladder:
1. People should start out as contractors, and get paid on time and fairly for quality work. Increasingly, right or wrong, like it or not, we are moving to a freelance economy. Most people start here to prove their worth.
2. Good contractors earn the right to become employees, with benefits and a salary. Only bring an employee on if you are sure that you will use 100% of their capacity, flexing up and down with a pool of contract labor.
3. Good employees get favored with many non-cash benefits: pick of best assignments, flex time, getting thanked in a variety of personal and appropriate ways, being part of a fun culture, contests, mentoring by more experienced designers/developers, etc.
4. Core employees — those who are essential and who provide consistent, measurable benefits — can earn equity and/or bonuses. Equity goes to employees who add unique enterprise value to your company. Bonuses go to employees who achieve specific, measurable goals.
5. Bonuses to ALL employees are a good idea from time to time when the company has an especially good year. But you should make it clear that these are one-time. Also, think about distributing these to people based on their seniority, or as a percentage of salary.
The above is a bottom line approach to thinking about compensation. Many of you won’t like it. I’m used to that by now:)