One important thing to remember about MSFT is that more than half of the company is "the field" -- sales, evangelism, operations, and so on.
The stack ranking system is and was hugely popular with this org. It is popular nowhere else.
MSFT still likes to think of itself as an engineering company, but it is hard to have a tail that big and not sometimes accidentally wag the dog. Stack ranking is probably the best example of how true this is.
EDIT: To add some color to this tale, a Technical Fellow once told me that during the "rank and yank" period (when everyone was ranked and the bottom 10% were effectively fired) he was continually on the verge of quitting. If you are doing something like inventing the CLR, and you hired 5 of your favorite engineers, how are you supposed to react when someone tells you that it is imperative to fire one of them per year? What could the point of that possibly be? This is more or less a common sentiment among extremely senior engineers who ran important orgs at that time.
Yeah, I ran a team like this. I was able to attract the best of the best and built a solid team, but the incentive was to hire some people that weren't as good so they could give you somewhere to throw the 10%'s. It's awful because a lot of those people still work hard and are reasonably good at their job, no one wins. I was fortunate that a partner team had a lot of low-performers and I got a little break when we combined curves.
That said, I'm skeptical that the stack rank system is gone, based on what I hear from those that are still there (I've been out for many years now). It sounds like a lot of the same curve-fitting is just renamed.
When I was offered a position at Microsoft, I declined in part because, after the interview, I was concerned they were precisely looking to hire someone to be the "fall guy" for the team (this was while stack ranking was still in effect).
Now I'm by no means a great developer (as one of my Microsoft-employed friends brutally said about my declining, "No loss for Microsoft"), but I imagine this concern could scare away genuinely good developers too worried that the politics of "keeping the team together" would outweigh any actual individual contribution they'd make.
The friend said "No loss for Microsoft", showing that he cares about Microsoft.
A real friend might have said "From my perspective you could improve as a programmer. Your weakest point is field x and therefore I recommend that you read the following book."
I think the OP knows that he isn't all that awesome at programming. As a friend, I don't go around pointing out to my friends weaknesses in their person they them selves are well aware of. In this situation the friend could have said something like "Oh, that's a good idea that you passed on that job, you are week in that area, and they were probably looking to hire you as a sacrificial lamb." A statement like that shows that a person is your real friend. They are acknowledging your weaknesses, but with the goal of helping you in the end of the day, not the company.
I don't think so in the general context, unles the relationship is close and you can say anything to each other without hurt feelings.
Saying a person sucks is pretty pointless without a detailed performance review, identifying a few key points to improve in the next span (of months/years) and keeping tabs on progress. Usually saying someone sucks in general is pointless demotivation and hurts feelings without purpose.
Identifying specific sucky aspects in ones work and suggesting helpfull improvements is beneficial, if requested.
Yeah, we saw a ton of bad attrition. Really good people leaving. I myself often thought I would quit; eventually, I did, though not because of the review model.
Ask HR about bad attrition and they would totally deny it. "Sure, people leave. They leave all the time." But if your really, really good systems programmers are bailing, you have a problem; those people do not grow on trees.
That's exactly how Microsoft managers used to do it. They would hire (and keep) deadwood on the teams specifically for this purpose. Honestly, that's the trick any reasonably bright manager learns after having to let go of someone who's really good. Another trick they would do is tweak rewards so that some people get more cash raise than normal and less stock, and some would get more stock than normal and less cash. Then they'd make up all these lies about "potential" etc, instead of just telling you "dude, I had a finite budget, and this is how the dice fell this time around".
I don't know how jocose you wanted to make it, but it's really not that far-fetched from reality in companies where performance review results are stacked or quota-based. I saw it happening first-hand and it is indeed revolting. Humans shouldn't be handled like ordinary resources.
And the worst thing is that these strategies aren't any better in managing subjectivity and prejudice. For all its quantitativeness and statistically-oriented methods (e.g. fitting the performances to a normal distribution), these systems are subject to biases just like others. More often than it should, your placement in the stack or distribution reflects more your influence and relationship with evaluators than your actual performance.
Sales and the field also had (not sure if they still do) a different compensation structure than day to day engineering. That can also play into things.
One of the justifications for stack ranking is that the organization needs strong people to spread our and lead the whole company, not cluster together.
The bottom of the stack should be the juniors, not the GE yank bullait
Stack ranking actually works, unlike the naysayers like you to think. The problem is that it works to good. You burn out your engineers killing themselves to avoid the yank and everything starts falling apart. Stack ranking is a lazy and uninspired technique that is the last resort of a CEO who can't excite the ranks with great ideas.
The stack ranking system is and was hugely popular with this org. It is popular nowhere else.
MSFT still likes to think of itself as an engineering company, but it is hard to have a tail that big and not sometimes accidentally wag the dog. Stack ranking is probably the best example of how true this is.
EDIT: To add some color to this tale, a Technical Fellow once told me that during the "rank and yank" period (when everyone was ranked and the bottom 10% were effectively fired) he was continually on the verge of quitting. If you are doing something like inventing the CLR, and you hired 5 of your favorite engineers, how are you supposed to react when someone tells you that it is imperative to fire one of them per year? What could the point of that possibly be? This is more or less a common sentiment among extremely senior engineers who ran important orgs at that time.