We just finished our first year of formal performance appraisals (self-review, review by manager, etc).
The best thing I can say in favor of the current system is that the managers I know realize that it's a mess/work in progress. It seems like the poorly aligned official standards are being duly ignored for now. I'm not a fan of subjective evaluations, but they're better than completely random "objective" ones. We'll see how it goes in a year or two.
How is it a mess? Line engineers and managers had opposing goals (maximizing bug counts fixed, minimizing bugs--and those are terrible metrics even without the mismatch), individuals had goals that had no relation to their work, or which they had no power to affect.
Team leads had to give feedback, but there was zero structured discussion about standards: I had to ask a manager how to translate my evaluation of a developer into a numeric scale.
My manager had to stack rank 5 people on a 1-5 scale. This was theoretically not just ranking "first" through "last", but ranking from "exceptional" through "unacceptable".
There are bs reviews HR has added for our company, but there are also 3-4 star entries for current employees whose identifies I can guess based on their phrasing (I'm calling bs on any 5 star I see). There are also a few ridiculously negative ones left by people right after they were fired.
> Would anyone advertise a company that doesn't have a "High Quality Codebase"?
I don't know about advertising (and this is a throwaway account) but when we interview candidates, we're clear that our code base has a lot of legacy code and the quality is a mixed bag. We're also clear that while most of our development team wants to improve it, it's a slow process and can only be done in ways that don't slow down feature development.
Developers who are obsessed with code quality have been a mixed bag for us. Several of our best developers are the people who care the most about quality code and push hardest to improve it. On the other hand, we've had people who seem to care a lot about quality, but have no feel for the cost/benefit ratio of any given change, and spend more time complaining about code than actually working on it. The ability to talk about what good code looks like doesn't necessarily translate into the ability to improve flawed code.
The best thing I can say in favor of the current system is that the managers I know realize that it's a mess/work in progress. It seems like the poorly aligned official standards are being duly ignored for now. I'm not a fan of subjective evaluations, but they're better than completely random "objective" ones. We'll see how it goes in a year or two.
How is it a mess? Line engineers and managers had opposing goals (maximizing bug counts fixed, minimizing bugs--and those are terrible metrics even without the mismatch), individuals had goals that had no relation to their work, or which they had no power to affect.
Team leads had to give feedback, but there was zero structured discussion about standards: I had to ask a manager how to translate my evaluation of a developer into a numeric scale.
My manager had to stack rank 5 people on a 1-5 scale. This was theoretically not just ranking "first" through "last", but ranking from "exceptional" through "unacceptable".