What if there's a developer on the team who delivers 1/3rd the features as everyone else, but they offer such effective mentorship that their five teammates deliver features 2x faster? If you design your review process around objectively verifiable data, then it's almost certain to undervalue a developer who's great at mentorship because mentorship is hard to measure.
And it's not just mentorship. There are tons of contributions that seem pretty obviously beneficial but aren't objectively measurable: recognizing simpler ways of achieving business objectives, communicating clearly and effectively, being pleasant to be around, etc.
But if you go the other way and leave it up to pure human judgement, then you end up with promotion being based on favoritism, office politics, and irrational biases.
And my personal favorite: luck of the draw.
On the other side, most well-liked people I met were professionally superficial at best, masters of talking and networking, but not delivering much at the end of the day. They were promoted first, so that the entire organization was full of these people promoting similar ones.
That said, it isn’t _required_ for you to be a jerk; I’ve also worked with incredibly talented people who were generally kind. But they did not go out of their way to network and schmooze. IME, people who are concerned with what others think of them are the least accomplished.
I’ve seen this happen again and again. Nice people become jerks when they become good at tech.
It doesn’t always happen. Plenty of compassionate tech wizards.
I suspect it’s due to the fact that being a jerk gets reactions quicker. “You messed this up, fix it like I tell you or I’ll ruin your reputation” gets more effect than “Let me show you how this works.”
I also suspect that programmers are often so lost in their heads, they don’t take good advice when it’s given.
I’ve been guilty of this. I’ve decided a problem is from X part of the stack, that when an expert in Y says to look in Y I’m like “but that doesn’t effect X!”
- they try their best, they need help, they ask for help, they get it
- they don't put any effort, they go to the expert with the most idiotic questions waiting for solutions to be served. The expert runs out of patience, becomes grumpy with these people
So the experts are not jerks. They are short on patience with super-lazy, super-incompetent people that waste their time.
I haven't really encountered this. Generally speaking people who can teach others to be much more productive like that are unsurprisingly themselves, more productive.
This fictional person would be better suited to a people management or coaching role as a individual contractor they only achieve a third of the average.
Now with the major objection to objective performance review gone we can do that for the actual individual contributors.
If the people near the top of those leader boards are near the top of the comp leaderboard your job is done as that makes sense by the numbers, if not you need a really good justification as to why* if you want to keep those literal top performers for long.
*or crossed fingers nobody discusses comp before you exit
> Lines of code (not just in main but in branches)
IMO, the best devs can end up with negative LOCs per measurement period. Neophytes will never have negative LOCs. Mediocre devs who copy and paste a lot can have really high LOCs.
> lines of documentation written
And the more documentation you have the more out of sync it is with reality.
You can come up with superficial ones: lines of code written, tickets closed, hours seen in office, but I doubt those are strongly associated with effectiveness. Everyone in has probably had weeks where they “did nothing” because they were working on a tricky problem or doing work outside of what was quantified.
Did they ship the features they were responsible for? Did those features turn out well, with a low defect rate? Did they promptly address bugs? Any manager paying attention can answer these questions pretty objectively.
You say this and then go on to do the exact opposite in
> Did those features turn out well, with a low defect rate?
And likely in this
> Did they ship the features they were responsible for?
So which is it?
Is the objective measure of “well” a low defect rate? Because it sounds like you’re leaving a substantial amount of the value of an experienced employee on the table if your measure is “does it do exactly what we asked for it to do” rather than “does it solve our problems”.
Here we're saying "okay, our case is n=1 samples, no control, we're going to need to lean on our gestalt experience and knowledge based on the virtues of this company saying we're good at managing and/or our HR credentials" (this type of thinking also exists in medicine and is equally unsettling - usually wielded by people with experience AND power so it's difficult to disrupt due to the latter)
The lack of control means you can't compare Peter to Paul because maybe Peter likes to stick his neck out and/or take one for the team as a show of teamwork and humility, maybe Paul is cautious and wants to maximize revenue from this position and loves to play politics. Peter is willing to go the extra mile for the company, but Paul will be the one with the perfect record. Now, if there were decent controls for either, they would show Peter is outperforming a control given challenging tasks, and Paul is underperforming by minimizing work done.
This can't work without individual ownership, which is antithetical to "best practices" at many places.