
What happens over time if each year I fire all my below average programmers? - rmason
https://www.quora.com/What-happens-over-time-if-each-year-I-fire-all-my-below-average-programmers-and-get-better-ones/answer/Ethar-Alali?srid=orK8&share=a6861ae3
======
kabdib
Imagine this: Joe, your best performer, has a bad year. He ran into personal
issues (divorce, death in the family, illness, etc). Joe was on a steady
streak, then his performance cratered for a while. It's nothing permanent. Do
you fire him?

Ballmer's organization would. I've seen it.

In Ballmer's organization, groups deliberately used head count to hire low-
performers, who would then be put on the chopping block in review cycles. The
horse-trading games in review meetings were brutal. People wrote self-reviews,
but they didn't mean anything because it was all decided ahead of time. It was
all a big kabuki dance pretending that the company could measure people
accurately, even across widely separated groups (an SDE II in the Xbox group
was not the same as an SDE II in Windows, believe me).

Oh, and God help you if you get into one of these situations: Say you're a
seasoned veteran, a senior engineer, and your boss got out of school three
years ago and has _no_ idea how to defend you in stack ranking. Or your
manager is an over-the-hill engineer who doesn't want to manage but was forced
into it, and doesn't even buy you equipment, much less give a crap about you
in a stressful meeting he doesn't want to attend in the first place. Or you're
reporting to a political climber, who will throw you under the bus just to be
a "yes man" to someone else in political power.

One year I was a "ten percenter" and in peril of losing my job. Two years
later I was getting promotions and on the partner track. Go figure. We can't
pretend that reviews are even remotely accurate given this scale of noise.

I think that deciding pay scale / ranking and deciding who should be let go
should be a different set of criteria, and probably a different review cycle.
Not totally unlinked, but not utterly congruent, either. This would also
handle the "high paid asshole" who is productive, but totally toxic and doing
damage far in excess of his pay.

~~~
Analemma_
In addition to this, I would add a "proof is in the pudding" argument if the
arguee is still not convinced:

Microsoft got rid of stack ranking in 2013. Their stock has almost doubled
since then and now everyone's talking about the "Microsoft renaissance".
Correlation isn't causation, but it's hard to argue that stack ranking is a
_good_ thing after a turnaround like that.

~~~
bitwize
I think Microsoft's depressed stock value and stack ranking are both symptoms
of the fact that Ballmer was a clown.

~~~
manicdee
And one of his biggest clown tricks, bigger than "Developers Developers
Developers" or throwing chairs, was messed up HR policies.

~~~
nojvek
Microsoft my hire PR folks but under Ballmer, office would never appear on ios
and Android. I was there when a clean built application was rejected only to
be approved by Satya governance.

We would not have seen open .NET, open vscode, Typescript, Ubuntu subsystem,
Powershell.

Even in the cloud, Linux would have never made to Azure. Ballmer saw Linux as
threat, Satya saw it as a platform to build things on.

It was a night and day difference when the shift happened. Every team built
their own hacked version of Jquery and suddenly we could just use a pre-built
one. Code was cleaner, teams moved faster. Open-source was encouraged. No
stack rank.

Stock doubling is not a coincidence. Ballmer just didn't understand
developers.

------
gozur88
>In addition, there are people out there who are constant scaffolding to
everyone else. You have to watch out for them, but not because they’re
trouble. Because you could be trouble :)

>Their individual productivity looks poor, but they’re natural givers. You
fire them, as Microsoft did, then the teams they are in, literally collapse
overnight.

1000x this. I've seen it happen. Some people are just naturally team players.
They help other people shine. They see success as making the team succeed. One
thing he didn't mention is _these people tend to be well liked by their
coworkers_ , so when you fire them the rest of the team goes into a deep funk
which has everyone sending out resumes.

Stack ranking is dumb. At one time you could have made the argument it might
be effective in its brutality, but not any more.

~~~
LyndsySimon
This is exactly the type of developer I try to be.

I've been in this industry about ten years now, and I've learned that while I
am capable of a very high level of productivity I am not capable of
maintaining it consistently. I can do short bursts on command and I can
occasionally maintain it for a couple of months at a time, but I inevitably
crash and start to drift.

I don't think I'll ever be the "rockstar" that puts repeatedly puts out
amazing stuff, day in and day out for months and years. I know those people.
What I _can_ do is ensure that I deliver value during my "drift" periods by
helping coworkers, implementing iterative improvements in existing processes,
and doing systems-level design work.

At my current job, we work in two-week sprints. Right now, I've been working
on a feature for six weeks that should have taken me no more than three. I
completed it this sprint it a burst of productivity; last sprint I made little
progress on it, but was able to complete a slew of smaller side tasks that
helped the whole dev team.

I also spent a lot of time reading and "tinkering" with other parts of the
codebase and the libraries we use which resulted in my becoming a domain
expert in a couple of new areas. Because of that, at least twice another dev
came to me with a complex problem in that area and I was able to point them to
a simple solution in only a few minutes - in other words, my yak shaving had
resulted in an immediate time savings for them _and_ a longer-term time
savings by drastically reducing the amount of code that we'll have to maintain
going forward.

Now, if my value to the team were measured only in how quickly I completed the
task that was assigned to me, I'd be barely meeting expectations. If you
consider my overall impact it's an entirely different story. This is exactly
what my employer does, and is a large part of why I joined them. I have the
freedom to focus on tasks that are not on a tight timeline, and to reallocate
myself if I need to or if I'm able to provide more value elsewhere.

I wouldn't last six months at Ballmer's Mircosoft, though.

------
gumby
This is a great explanation of the destructive consequences of what's called
Stack Ranking (I think Intel still does it).

Even if you're a sociopath and don't understand the reasons outlined in the
article: how do you figure out what "average" is? Lines of code? Bugs fixed?
Even if you had a meaningful metric, evolutionary pressure would cause people
to select for it, which isn't what you want (you want a diversity of skills).

~~~
jimmaswell
This form of argument always seemed disingenuous to me. After spending some
time with a programmer, especially in a work environment, it's easy to get an
overview of how strong their skills are, and average would mean either the
average of your employees or the average of similarly-positioned employees in
general, neither of which is hard to have a handle on after being in the
industry for a bit of time.

Just because you can't with current technology write a program to give an
output from 0 to 100 grading a metric doesn't mean that the metric is
impossible or even difficult for a human to evaluate. Leave your metric at "a
heuristic evaluation of the employee's overall effectiveness" and the only way
to "game" it will be to be a better employee.

~~~
harryf
> After spending some time with a programmer, especially in a work
> environment, it's easy to get an overview of how strong their skills are

If you're another programmer, yes perhaps. But I've seen weaker developers
consistently claiming undue credit from management through superior social
skills enough times to know that, even with the best evaluation system in the
world, it's _always_ possible to game the system.

More to the point, as the article points out, I've seen teams full of "stars"
who's collective success depended on that weaker member that fixed all the
bugs no one wanted to touch. Scoring that persons value directly would have
missed their value entirely.

~~~
oneeyedpigeon
In my dystopian nightmare, the employees rank each other to determine who's
below average.

~~~
gumby
Welcome to the "360 degree review":
[https://www.qualtrics.com/qualtrics-360/360-degree-
employee-...](https://www.qualtrics.com/qualtrics-360/360-degree-employee-
assessments/)

I wish I had made it up to tweak your nightmare but it is reality at quite a
few sucky companies.

------
NHern031
Great read. This type of cut throat culture inspires nothing but negativity in
the work place. I am a firm believer in helping your developers improve
instead of firing them. However, there is of course always a situation were
people must be let go.

------
hanoz
Your programmers find above average employers?

~~~
crawfordcomeaux
I laughed hard at your brilliant comment. Thanks for that. I needed that boost
while I work on my resume.

------
throwaway5752
1) You hire terribly and develop people terribly if it's that easy to hire
people better than your current staff (you should fire yourself) 2) Your good
people leave for more secure jobs with people that aren't misanthropes 3) Over
time it tarnishes your reputation as a destination 4) Over even greater time,
it stunts the development of your professional network.

This is a pretty good Quora answer, all things considered.

------
milesf
This is a common practice among sales organization here in British Columbia,
as it was championed by Jimmy Pattison. He started in car sales, and now owns
billions in assets here in BC. Having worked in sales, I understand the logic
behind it. I disagree with it, but I understand it.

The mantra seems to be "when you have great sales, you can commit many sins".
Not exactly the best motivator for an ethical institution.

An alternative, and more effective sales methodology IMHO, is Jim Collin's
"Good to Great"
[https://en.wikipedia.org/wiki/Good_to_Great](https://en.wikipedia.org/wiki/Good_to_Great)

You may agree or disagree with my views, but if you're a company that fires
the bottom 10% on a regular schedule, I can promise you this: I will never
work for you.

~~~
basicplus2
Yes but... this only works in sales type environments where every worker is
only interested in themselves, sales at all costs without regard for others,
and it rewards the worst type of psychopathic personality

~~~
milesf
Couldn't have said it better myself :)

------
robjan
This happened at a company that I worked at previously. All of the "good
programmers" left to more honest and less stressful workplaces because they
could. This left only average programmers remaining. Without the good
programmers to mentor the remainders, people started to fall into bad habits
and started slipping into "below average" territory.

------
lutusp
"What happens over time if each year I fire all my below average programmers
and get better ones?"

Easily answered:

    
    
        f(t) = 2^-t
    
             t     f(t)
         ----------------
         0.000    1.000
         1.000    0.500
         2.000    0.250
         3.000    0.125
    

This obvious mathematical result stands apart from the expected morale issues.
It also ignores the "get better ones" expectation, since that will never
happen once word gets out.

------
a3n
If I worked at such a company, whether I was an HPE (I'm not) or an Average
(probably at least), I would never recommend or invite anyone else in to that
culture. If someone I knew really needed the job, I would at least describe
the culture and say "it's up to you." But I certainly wouldn't be part of the
underground recruiting team that, ideally, everyone should be.

And I'd stay for my own reasons, until not.

------
madengr
This is/was done at my current employer; Honeywell. Of course we had to outdo
GE and make it 15%. I knew two managers who quit over the process, rather than
fire their reports. Of course we had 360 reviews also. The same corporate
jackasses must travel from company to company screwing stuff up.

------
crawfordcomeaux
Easy: you'll be "firing" the company's stated corporate values running counter
to the practice and "hiring" operational values aligned with it.

What are those fired/hired values? I don't know and likely neither do you.
Considering it's a practice based on arbitrarily judging others (ie.firing
Equanimity), I'm guessing Compassion & Kindness also take a walk, with Joy
soon to follow. I don't need to know anything more about your company to know
I don't want to work there...sounds like a dreary place to work.

It's not only important to intentionally design your culture in alignment with
your values, but for the values to be aligned with the organization's needs.
Humans and organizations don't need rankings. They need resources. Designing a
culture around rankings ignores needs and is thus an unfriendly environment
for people. They'll then do whatever it takes to meet their needs, regardless
of corporate values.

In short, enjoy your cultural grab bag!

------
tryitnow
This sounds insane. Why would you hire a cohort of employees only to fire them
later?

This may make sense in professional services firms with a pyramid structure.
That's a situation where "up or out" might make sense.

But a dev team? There are just way to many inter-dependencies in software
development. Plus, social skills aren't a "must-have" for further development
as an engineer the same way they would be for a professional service provider
(e.g. lawyer, consultant, accountant). So the political aspect of rank and
yank, just serves no purpose.

Finally, software is an industry that's growing faster than the old
manufacturing firms like GE (where rank and yank was popular).

If it's cost pressure that's causing you to fire people, then perhaps you
should have outsourced that dev work to begin with. Part of it was obviously
both expendable and/or temporary, so not treat it as such?

~~~
cperciva
_This sounds insane. Why would you hire a cohort of employees only to fire
them later?_

The simple answer is "because it's cheaper to hire them and see who works out
than to put together a better hiring process". No hiring process is going to
be perfect; at scale, companies can reasonably say "X% of our hires aren't
going to work out".

Consider the situation of university scholarships. At my institution, we offer
entrance scholarships based on high school grades, extracurricular activities,
and an application essay. If a student doesn't maintain a 3.5 GPA (we have A+
= 4.33, but the average grade awarded across the institution is 2.80) then
they lose their scholarship.

Every so often someone says "hey, why are we taking their money away? Why are
we making them stress out over keeping their grades up?" \-- and my answer is
always that if they're having trouble maintaining a 3.5 GPA, _we made a
mistake in giving them the scholarship in the first place_.

Now, the situation isn't entirely analogous; in particular, if someone has
worked at your company for 10 years and repeatedly demonstrated that you
didn't make a mistake by hiring them, a single bad year probably doesn't
contradict that. But if you know that you have a consistent rate of 10% of
your hires turning out to be mistakes, it's not completely unreasonable to go
around to your teams and say "those 10 people you hired last year? Figure out
which one was the mistake".

------
skylark
I think there's a time and place to fire toxic people and low performers. But
to code that into any sort of forced rule seems short sighted. I'm surprised
companies like Microsoft even attempted it.

------
chrisbennet
Does anyone know if stack ranking is ever applied to the C-suite? For example,
fire 10% of VP's in companies that have multiple VP's.

------
ouid
I don't think that the problem here is the society that firing people creates,
but rather that we don't have a very good definition of performance.

A similar problem occurs when you try to define evolutionary fitness. There
are trends and correlates, but we have never found any universal criteria for
fitness.

------
aetherson
Let's note the difference between "fire all my below average programmers," and
"fire my 10% worst performers."

The former is obviously insane. The latter isn't, though dogmatic and literal
interpretation of it as a rule rather than a guideline has bad results.

~~~
Eridrus
Firing the bottom 10% is still corrosive when you get to the implementation,
just go read about how it worked at MSFT.

Firing people when they don't meet expectations is fine, but having enforced
quotas is highly problematic.

~~~
aetherson
I mean, on some level I totally agree. Having enforced quotas is highly
problematic.

I kind of feel like managing a very large organization, on the scale of
Microsoft or even larger, is a matter of choosing the marginally less highly
problematic approach than all the others.

Telling everyone to "fire people when they don't meet expectations" works
pretty well in a 100 person company where the execs can more-or-less check the
work of the line managers and intervene when someone is avoiding firing their
low performer. It's not a solution in a 120,000 person organization.

What happens instead is some managers tolerate their low performers. And then
low performers flock to their team and high performers escape it, and their
team becomes dysfunctional. And then it infects all the teams around it with
dysfunction. And by the time this bubbles up to a level where you can be
reasonably sure that everyone's aligned and high performing and able to
effectively intervene, you've got rot throughout entire departments, and
fixing that causes incredible morale problems of its own.

So you adopt some kind of policy that you believe forces your line managers to
have some kind of accountability.

Now, is stack ranking the least-worst policy? I dunno. I've never been in
charge of Microsoft. They certainly weren't at their best during their stack
ranking time, but you could plausibly point fingers in a lot of other
directions to explain their overall bad performance in that time period.

But what is the alternative? I don't think you can just give everyone the
Netflix culture deck and tell them to go to town. Netflix is 3,500 employees,
not 120,000. It's pretty unlikely that Netflix's solution scales to
Microsoft's size.

~~~
dragonwriter
> So you adopt some kind of policy that you believe forces your line managers
> to have some kind of accountability.

But, it doesn't. Actually evaluating the people within your scope of control
(at a minimum direct reports) and holding them accountable for concrete,
business-meaningful results does that.

Stack ranking doesn't, and moreover it transparently obviously doesn't in a
way which has obvious adverse impacts on subordinate organizations which are
effective, so it not only fails to establish real accountability for lower
management, it sends a message to lower management that upper management is
more interested in pro forma shows of "doing something" than actual concrete
business results, which—aside from.the direct adverse impacts of stack ranking
itself—has adverse cultural impacts on management throughout the organization.

------
kwhitefoot
You probably won't have any left because the above average ones will start to
feel insecure.

------
codr4life
My programmers? Who the fuck do you think that you are? These are human
beings; you, not so much.

~~~
glangdale
Who are you responding to? The author of the Quora post? I know it probably
took a long time to craft your argument, but you might want to read the post.
He is not advocating this.

As for "my programmers", this is a shorthand and maybe not worth losing your
cool about. I refer to Australia as "my country" without implying that I own
Australia and "my company" without implying that I own Intel.

~~~
codr4life
I was responding to this kind of reasoning even being on the radar; the
caption was enough to make me feel sick, didn't feel the need to go further.
More like a Freudian slip in my ears, referring to specific human beings makes
all the difference. Skimming the article proves my point, all about numbers
with barely a mention of humans.

------
tinus_hn
Two things:

* People try to game the system to get a high score instead of performing well

* People leave the good teams and flock to the bad teams because then they are not below the average anymore.

People do not behave as predicted by these models, they cheat. That's why it
doesn't work.

------
chrisbennet
I think I read that at Microsoft (when they had stack ranking), high
performers would avoid being on the same team with other higher performers
because someone always had to be ranked at the bottom - even in a team of
exclusively high performers.

------
najajomo
"In addition, there are people out there who are constant scaffolding to
everyone else."

I assume the use of 'scaffolding' here, means an average programmer who
through personal skills, raises the performance of the whole team.

------
tlogan
One thing which really worked well for me is to fire engineers who do not
grow. It is true that "growth" is really hard to measure but that is point of
being a good and smart manager.

------
GingerBoats
I was at a start-up that did this, and then expected the remaining developers
to then keep the original workload with added responsibilities.

------
sjg007
I would agree.

------
Pica_soO
You loose it all. The talent, the new ideas, the customers - until even
eternal monopolies fall apart. Any metric will be gambled, and thus, the best
metric is to correlate success with teams, and keep the good ones with
rewards, while putting the problematic ones in quarantine among which people
can still migrate. Repaired Teams are moved out of quarantine, all without
explanation. Success is only determined with "historical" distance - aka 1 or
2 years.
[https://www.youtube.com/watch?v=YyXRYgjQXX0](https://www.youtube.com/watch?v=YyXRYgjQXX0)

