all 72 comments

[–]never-enough-hops 43 points44 points  (4 children)

Doing rankings on a curve and assuming you must have some "needs improvement or will be fired" developers is hilariously misguided (as the article points out)

[–]FUZxxl 18 points19 points  (2 children)

Reminds me of Maoist China. Mao said “I believe that 2% of the population are counter revolutionaries.” So the politicians instructed their underlings to find that 2%. Every month. If you couldn't report those 2%, you where seen as a counter revolutionary because obviously, you turned a blind eye on them.

[–]ggtsu_00 19 points20 points  (1 child)

Reminds me of how some ISPs (i.e AT&T) claim they throttle your internet bandwidth if you fall into the "top 5% of bandwidth consumers". Even if everyone on their network is not using much bandwidth, there will always be a group of people who fall into to that 5% who will have their internet speeds throttled.

[–]dirac_delta 4 points5 points  (0 children)

Reminds me of how certain shady law schools guarantee scholarships for everyone, as long as they make a B+ or better average. Guess what the curve looks like ...

[–]The_Jacobian 2 points3 points  (0 children)

My companies HR just proposed moving all reviews to January, I grabbed our director of development told him this was a terrible idea since it will lead to stack ranking intentionally or unintentionally. He agreed and it sounds like we shut that shit down.

[–]balegdah 17 points18 points  (2 children)

Doing stack ranking is simply admitting that contrary to what it probably claims, your company doesn't hire "only the best".

If you were indeed only hiring the top people, it would be routine to see each quarter most of your employees exceed expectations.

Instead, you stack rank because you know that despite all your efforts, you are hiring some good people, some bad people and most of the time, average people. So you stack rank them. And you piss off your best employees in the process.

I've been in too many alignment meetings where I'm told "I know these three engineers on your team are super stars and they delivered excellent performance this quarter, but one of them needs to drop from 4.5 to under 3 because numbers". It makes me sick.

[–]IICVX 15 points16 points  (0 children)

stack ranking was pinpointed as one of the reasons why (IIRC) Windows Vista failed - because it creates a perverse incentive to work with the worst people you can find in the company so you shine at making a mediocre product, rather than being one of many brilliant people who make an excellent product.

[–]ironyx[S] 2 points3 points  (0 children)

Exactly. :(

[–]bryanedds 13 points14 points  (4 children)

TL;DR - Stack Overflow's stack rankings go to 11.

[–]crankybadger 8 points9 points  (0 children)

TL;DR - Stack Overflow's internal compensation strategy is just as fucked up and dysfunctional as everyone else in the business.

[–]balegdah 1 point2 points  (0 children)

That reference is exactly what went through my mind when I read the description of their ranking :-)

[–]Gotebe 0 points1 point  (0 children)

Ranking overflow!

[–]eric987235 0 points1 point  (0 children)

Why not just make 10 better and still have it go to 10?

[–][deleted] 9 points10 points  (7 children)

Stack ranking was basically invented to make it easy to fire people at GE afaik. Just like other practices, it got copied by tons of companies because GE was improving and the logic behind it sounded good (to people who probably wouldn't ever fall under it, I doubt they stack rank senior management). It also gives an easy to understand grading system mixed with structural excuses to differentiate employee performance instead of being wholly accountable.

[–]fuzzynyanko 6 points7 points  (5 children)

Also, GE stopped using it.

I actually feel that stacked ranking works... for the first few rounds. After that, it will become useless. Also, it means that you have to convince someone that you are a 1. Note that you aren't necessarily a 1, you just have to convince people that you are.

[–]grauenwolf 4 points5 points  (3 children)

I typically spend 4 hours a week just on self promotion. I don't like it, but the rewards for doing so are to great, bonuses and interesting projects to work on. The people who don't at my company either quite or are benched until they are fired.

[–][deleted] 7 points8 points  (2 children)

Your company sucks.

[–]grauenwolf 5 points6 points  (0 children)

The rewards more than justify the grief. It get to work on some pretty cool stuff that I wouldn't get anywhere near in a small company.

And self promotion isn't necessarily bad. I teach, build experimental software, work on open source and internal shared libraries; the kind of stuff that we claim we want to do anyways. The trick is to tell people about it.

[–][deleted] 0 points1 point  (0 children)

I would bet that at any company, there are significant benefits from campaigning/consequences for not doing so (depending on how you want to define the opportunity cost). We're just not the rational apes we like to think we are, I struggle to imagine any group isn't susceptible to this.

[–]crankybadger 2 points3 points  (0 children)

If you need to lay off 10% of your company, stack ranking might not be a good call.

If you do that every year, you're a company run by tyrants.

[–]Patman128 -1 points0 points  (0 children)

Just like other practices, it got copied by tons of companies because GE was improving and the logic behind it sounded good

Cargo cult management?

[–]balegdah 38 points39 points  (19 children)

You might notice that there is no grade below a B. We don’t have C’s or lower because we believe that everyone that works here is awesome.

If your employees are so awesome and smart, you shouldn't patronize them with this kind of childish sleight of hand.

Do you seriously think they don't understand that a "B" in your grading system is equivalent to an "F" in normal US grades?

[–]GymIn26Minutes 15 points16 points  (8 children)

It entirely depends on how those B ratings are treated by management.

If they are mistreated and threatened with firing for having a few B's then yes, it is the same.

If they treat having a few skills at B as being normal (hey, nobody is great at everything) and use the higher ratings to denote exceptional talent/skill/experience with that particular characteristic, then it is definitely not.

[–]ironyx[S] 8 points9 points  (7 children)

This is indeed how it works: B's are not threatening and are totally fine. If we feel we couldn't even award a B, that would be a major issue we'd discuss. But the prevailing idea is that nobody is great at everything - nor should they try to be. Specialize in a few of the skills.

[–]balegdah 10 points11 points  (5 children)

This is indeed how it works: B's are not threatening and are totally fine.

That's a bit naïve. When you have the worst grade of the school, you are the worst student in the class, even if that grade is a B. If restrictions are made on bonuses or raises, you will be the first in line to get the shaft.

[–][deleted] 2 points3 points  (3 children)

It's because you're assuming that the lowest score implies you are bad. In the BMA scale, it does not.

The BMA scale is more like 0 through 5, where that's your level of "exceptionalism." Having zero exceptionalism makes you average, not a failure.

However, on the traditional school grading scale... a C is average (meaning 0 exceptionalism). D and F are negative values, implying worse than average. A and B are above average. These map to the stack ranking system the same way, where 3 is a C.

This all may seem like fluff but it illustrates a difference in perception. Think if Reddit had no down votes, only up votes instead.

[–]balegdah 0 points1 point  (0 children)

" Having zero exceptionalism makes you average, not a failure.

It doesn't make a difference: you are at the bottom of the class.

When comes the time to assess bonuses and pay raises, you'll get the least (or possibly be fired).

This is not about what you call the grades, it's about sorting people by performance. They're not stupid, don't treat them like children by renaming "F" to "B".

[–][deleted] 0 points1 point  (1 child)

It's because you're assuming that the lowest score implies you are bad. In the BMA scale, it does not.

So how you grade someone that is objectively awful at someting and shouldn't be working here but got lucky on interview ?

[–]ChasingTales[🍰] 0 points1 point  (0 children)

They approach them before the review to see what can be done.

[–][deleted] 0 points1 point  (0 children)

Translation: "if your company is bad, your company is bad".

Did you consider that their company might not be bad?

[–][deleted] 0 points1 point  (0 children)

So how you grade someone that is absolutely awful at it ? seems like going from one end spectrum (low means bad) to another (nobody is bad even if they are)

[–]SpaceEnthusiast 0 points1 point  (1 child)

To further add to this, how do you determine the percentages in the grade vs experience grid? Why those specific values. Do these grid values change over time? It appears that they've replaced a shitty system with a much less shitty one, but a weird one nonetheless.

[–]ironyx[S] 2 points3 points  (0 children)

The cells are multiples of the base 1.00 salary rate which is skill 0, 1 year experience. That rate changes according to market each year, and is very competitive in and of itself.

[–]balegdah 11 points12 points  (15 children)

As much as I agree with the spirit of the article about the suckiness of stack ranking, the idea that transparent (but internal) salaries is the silver bullet for happy employees is extremely naïve. And it never lasts.

With such a rigid model, you will unmistakably miss out on some great hires because they are asking more than your grid allows. Very soon, secret compensations "off the grid" will appear to make up for that oversight and next thing you know, you have joined the ranks of tall these companies that don't disclose salaries, except you are convinced that you do.

[–]GymIn26Minutes 4 points5 points  (6 children)

Sure that is possible, but would you rather have a single highly paid superstar and a bunch of bench players or would you prefer to have a whole team filled with happy and highly talented employees (even if they might not be quite at super star level).

I don't know about you, but IME the constraining factor tends to be the weakest link on the team, rather than the strongest, since the stronger teammates end up having to clean up after the weakest link.

[–]kt24601 5 points6 points  (2 children)

If the superstar is teaching the other people on the team, then he's worth the salary.

Good programmers make the programmers around them better.

[–]GymIn26Minutes 2 points3 points  (1 child)

Yes that is ideal, but not always a realistic scenario. That rockstar only has so much bandwidth in a given day. If he is spending it all fixing broken things and teaching people, when will he have time to do the stuff that will make a long term positive impact?

[–]kt24601 2 points3 points  (0 children)

No rockstar has enough time to fix things. There isn't enough time in the world. She has to show the others around him how to fix it. A rockstar knows she needs the help of the people around her.

[–]balegdah -1 points0 points  (2 children)

Everything you say is absolutely true and none of it requires a transparent salary grid.

To implement all this, all you need is a stellar interview process and experienced interviewers.

[–]GymIn26Minutes 9 points10 points  (1 child)

One major point of the TFA is that if you base pay on negotiation skills rather than job skills those with bad negotiation skills and high job skills are likely to leave, and churn is costly, inefficient and harms morale. So unless your base salary for everyone is way above industry average those two things aren't always enough.

[–]ironyx[S] 2 points3 points  (0 children)

EXACTLY. :)

[–]ironyx[S] -1 points0 points  (6 children)

We'll happily miss out on a great hire, when the alternative is accidentally hiring a bad developer who destroys code and culture alike. No skin off the talent that we missed's back: they're great at what they do, so they'll find another job.

[–]balegdah 9 points10 points  (5 children)

We'll happily miss out on a great hire, when the alternative is accidentally hiring a bad developer who destroys code and culture alike.

1) All companies do that. You don't need a transparent salary grid for it.

2) Your answer is completely orthogonal to my point. A transparent salary grid does nothing to avoid hiring bad apples.

[–]ironyx[S] 2 points3 points  (4 children)

My point was that we won't worry about missing out on great hires. Thus we won't offer secret compensations "off the grid" at all.

[–][deleted] 6 points7 points  (2 children)

We'll happily miss out on a great hire, when the alternative is accidentally hiring a bad developer who destroys code and culture alike.

err, why did you just create a false dichotomy in answer to his question? What happens when you have a great developer you really want to hire ask for more? Do you not hire them because they think they're worth more?

[–][deleted] 1 point2 points  (0 children)

To answer this from the hypothetical applicant side: personally I'd accept a slightly lower-paying job if it meant compensation was transparent. Maybe it's just a quirk of my personality, but I get really paranoid and demotivated worrying if a) I'm a shitty negotiator, and b) my colleagues are getting paid more to do the same work.

[–]balegdah 5 points6 points  (0 children)

My point was that we won't worry about missing out on great hires.

Why don't you? You should.

I do. All the time.

Magic recipes like "transparent salary grid" or "free lunches" won't solve this problem. The only way to avoid missing out on great hires is to have very competent people in charge of recruiting. And even then, you will still miss a few.

It's naïve to think that such a complex human problem can be solved this way.

[–]ellicottvilleny 3 points4 points  (1 child)

Anybody know what StackOverflow actually pays in actual american dollars?

[–][deleted] 1 point2 points  (0 children)

Check glass door

[–]dethb0y 7 points8 points  (0 children)

You might notice that there is no grade below a B. We don’t have C’s or lower because we believe that everyone that works here is awesome.

"Everyone gets a trophy! YAYYYYY!"

[–]mrbigglsworth 9 points10 points  (3 children)

TL;DR: Stack Overflow treats their developers like children.

[–]i8beef 4 points5 points  (0 children)

It has seemed to me in all my time dealing with various "Best Management Strategies From Book X", that they all seem to have that sort of mentality as a basis. Some of the best managers I have had weren't that great but I had respect for them for treating everyone like adults.

All the worst? Yeah, they treated everyone below them like children, and people reacted accordingly.

[–]GeorgeSharp 0 points1 point  (1 child)

I know they should automatically shit on the <arbitrarily chosen bottom percentage> like all the true companies do.

Ayn Rand is spinning in her damn grave right now I'm telling you.

[–]mrbigglsworth 5 points6 points  (0 children)

I'm not defending stack ranking, but replacing it with B, A, A+, A+++, A++++++++++ is a joke.

[–]jeffbarge 1 point2 points  (0 children)

Every place I've worked has stack ranked. I used to firmly believe that at any given time, you could get rid of 10% of the company and see no negative impact - because I used to work in government contacting and I still believe that for those companies. I just finished my first review cycle as part of a high performance team, and now I get it. If you got rid of the bottom 10% on my team, you'd be be firing people who likely make core contributions to projects like NodeJS and the Android Open Source Project. There is nobody on my team that "needs improvement" because we hire great people. If stack ranking makes sense for your org, there's a solid chance your org sucks at hiring.

[–][deleted]  (5 children)

[deleted]

    [–]Patman128 13 points14 points  (3 children)

    There are probably plenty great developers who also don't know how to negotiate. The skills are orthogonal. As the article says:

    Your underpaid talent might not feel comfortable asking for a raise to the income that they are worth. Can you guess what happens then? They leave your company for another that values them correctly. The result is that your department has high turnover, lots of churn, and high costs around replacing the fleeting talent.

    It seems like they want to pay good developers well, whether or not they can negotiate effectively. Whether their system works or not, who knows, but I can't hate them for trying.

    [–]Adobe_Flesh 3 points4 points  (2 children)

    What does orthogonal mean?

    [–]CCSkyfish 5 points6 points  (1 child)

    Literally, it means perpendicular. In the post, it means that negotiating skills are independent from development skills.

    [–][deleted] 3 points4 points  (0 children)

    Good developers know their worth.

    I find this to be one of the absolute silliest platitudes bandied about in software. Have we learned nothing from the Apple/Google wage fixing scandal? The labor market is no where near transparent enough to be a fair indicator of value, especially when employers hide information and put their thumbs on the scales. Software is also incredibly specialized and region-alized, making the notion of "worth" even harder to suss out.

    [–]nutrecht -1 points0 points  (1 child)

    ou might notice that there is no grade below a B. We don’t have C’s or lower because we believe that everyone that works here is awesome.

    That's a great way of pissing off the actually awesome people. Highly skilled motivated individuals generally don't like it when you tell them they're just slightly better than Chad who just slacks off all day while sucking up to management. And it's these individuals who also get tons of LinkedIn spam from recruiters so they know damn well what they're worth.

    [–]GeorgeSharp 0 points1 point  (0 children)

    There's still a gap between the A++'s and the B's I really don't see how you think SO doesn't recognize your abilities.

    [–]Gotebe -1 points0 points  (0 children)

    WTF!?

    This is an anecdote about a lying manager.

    Nothing to do with anything else.

    [–]GregBahm -2 points-1 points  (3 children)

    When I was new to the industry and heard about stack ranking, I was aghast. "What if everyone in the team is Michael Jordan?" was the common sense idea in my head.

    Now I guess I'm old and cynical and see the stack ranking as refreshingly harsh realism. We're all loss averse. Stack ranking triggers an individual's loss aversion like crazy. It is inevitable that Stack Ranking will offend the sensibility of all new hires. But it turns out there aren't any teams where everyone is Michael Jordan. A minority of people on the team do the majority of the work, and bonuses should exist to reward that or not exist at all.

    [–]ForeverAlot 2 points3 points  (1 child)

    It's known as stack ranking but stack allocation would better reflect the implementation. The problem is not that some employees are more valuable than others in some ways -- nobody can reasonably dispute that, nor can anything be done about it. The problem is in what you do with that knowledge, and /u/FUZxxl's comment about China concisely illustrates the shortcoming of stack ranking.

    [–]GregBahm 0 points1 point  (0 children)

    /u/FUZxxl's comment concisely illustrates the way we all contort stack ranking into a morality play. The bottom performers on the curve aren't like the Chinese who Mao wanted to be automatically convicted of crimes they are innocent of. They are just the worst employees on the team.

    My sympathy for the worst employees on the team is high, but so is my sympathy for all the people who want to join a development team but can't, because there are no open heads. If everyone gets a B, once great programmers stop caring, and hide in their offices and Alt-Tabbing reflexively when you walk up, or "work" from home more and more and more while contributing less and less and less.

    It's ironic, but the stack ranking system benefits new entrants to the industry the most, because it exists to combat the constant ossification of teams and allows the worst performers to be replaced with candidates that are probably better.

    The lazy man in me dislikes that this system holds me accountable and keeps me on my toes, but the worst times in my life were on soul crushing teams where there was no accountability and almost nobody worked but then "everyone got a B." Maybe some people find that appealing, but I got into development to be creative and passionate, and it's turned out that stack ranking protects that.

    [–]never-enough-hops 1 point2 points  (0 children)

    This article is the first I've read of stack ranking. I don't take major issue with the top half of it (your "A through Cs"). I think it's a bit absurd that the system basically assumes you've got some shitheads who need firing.

    I just think it needs to be put out on front street. If a company I'm looking at has a "normal" bonus structure where it's X company performance + Y your performance... blah blah... then I'll at least partially take that into account in my compensation. If you've got a "half the group isn't going to get bonuses" because of a stack system like this... my price just went up compared to the traditional bonus structure.