I'm trying to create a developer-centric compensation policy. Which is to say it focuses heavily upon transparency, flexibility, and fairness. Many aspects of it are influenced by the Stack Exchange policy, described here.
However, I'm feeling a bit stumped about how to best include performance-based bonuses into the model. I feel this is essentially required since all developers in a given position will start out with the same base salary, and since I want 1) for there to be some incentive to encourage people to put in some extra effort, learn new skills, etc., and 2) for top-performing developers to be able to earn more than the bottom-performing developers when there's a clear and measurable difference between the two.
So there are some pragmatic questions, like:
- What's an appropriate cap on the maximum bonus amount? Currently I'm thinking 10%, but I feel that might be too low?
- What's a good time interval for conducting performance reviews? Currently I'm thinking annual, but maybe quarterly allows better flexibility?
And then there are more conceptual areas of concern, such as what's the best way to set performance objectives? Or if objectives aren't explicitly set, then what becomes the metric used to assess performance?
I'd like to avoid implementing systems that rely heavily on self- or peer-assessments, and other mechanisms that are likely to encourage unhelpful corporate politics (or gaming of the system).
I've worked at companies that used MBO for this, and I suppose it worked acceptably well in terms of not creating negative politics and being difficult to game. However, it was a lot of overhead for both employees and their supervisors (who both had to do a few reports each quarter to set up goals, track progress against them, and then review the progress at the end). Are there comparable strategies around that are more "lightweight" than MBO in terms of overhead?
Note that it's important for the bonus implementation to fit nicely within the rest of the compensation policy. Which is to say it must be developer-centric, transparent, and fair. What approach best fits these requirements?
For reference, you can find my current draft of the complete policy here.