

10x Productivity Myths: Where’s the 10x Difference in Compensation? - dangoldin
http://forums.construx.com/blogs/stevemcc/archive/2011/01/22/10x-productivity-myths-where-s-the-10x-difference-in-compensation.aspx

======
jrockway
There are two reasons for this. The first is that the 1/10th-as-good people
shouldn't even have jobs. Their cubicle, chair, and the electricity to heat
their work area are not worth paying for. But, good programmers are nearly
impossible to hire, and you need someone to sit around and look busy while
they are on vacation. Hence, bad programmers that are not worth paying for
become worth paying for ... not to write computer programs, but to look like
they're writing computer programs. Naturally they open an IDE and pretend to
work, and may even create an app once in a while. But that's not programming,
that's chair warming combined with some code monkeying. (Most 100,000 LOC
"applications" created by people like this could be rewritten as five lines of
Perl in fifteen minutes. I know because I've done it.)

The second great equalizer is the corporate world itself. Drawing from my own
experience, 90% of the work done there is unnecessary. If Team A can't give me
an API for their app that works, I have to redo their work. So now two people
wrote that API. If the sysadmins can't figure out how to "yum install gcc", I
have to install my own mini Linux distribution in my homedir. So now two
people are the sysadmin. This all takes time and does not actually result in
real work being done. Combine this with broken tools like Windows and
Exchange, and your entire week is suddenly gone with nothing to show for it.
(But that's OK, nobody expects anything.) If your actual job was to program
computers, then you would be 10x as productive. But since your job actually is
to redo other people's work, it's hard to be productive. Then there are other
issues, like how nobody at a big company can read or write, so even the
simplest problems have to be resolved with phone calls. Don't get me started
on being able to read code...

So this is why people don't get paid 10x as much. The people that know that
the work they're supposed to build on is inadequate for actually doing that
spend that "9x time" redoing that work so that they _can_ actually build on
it. Or they have meetings.

At the end of the day, the guy who didn't write any code and just read
Facebook all day is actually the productive one. At least he didn't make any
work for anyone else.

(I should also mention that a lot of productivity comes from thinking beyond
the current problem. The "YAGNI" attitude that is so popular these days is the
cause of a lot of problems. Complex problems are really just very special one-
offs of a more general but simpler problem. Solving the complex problem today
leaves you with nothing for solving a very similar problem tomorrow, killing
your productivity. Imagine the world before logic gates -- 10 transistors just
to output 1 if the two inputs were 1? Imagine the world before programmable
computers -- 100 electrical engineers working for a few years just to
calculate a few prime numbers? Any problem is hard if you want it to be.
"Professional programmers" want everything to be hard, so they feel like they
are earning their money. They then code accordingly. And that is the real
problem.)

~~~
toolate
"Most 100,000 LOC "applications" created by people like this could be
rewritten as five lines of Perl in fifteen minutes. I know because I've done
it. [...] I should also mention that a lot of productivity comes from thinking
beyond the current problem. The "YAGNI" attitude that is so popular these days
is the cause of a lot of problems."

So your quick five line script does everything that the fully specced
application does _and_ is a generalised solution that will accommodate future
expansion. Really?

~~~
jrockway
Yeah. Making general stuff is easy. Making your app break for special cases is
hard.

------
lkrubner
Here is the 10x difference in pay:

"One recent Googler, we’ve confirmed, was recently offered a counter offer he
couldn’t refuse (except he did). He was offered a 15% raise on his $150,000
mid level developer salary, quadruple the stock benefits and…wait for it…a
$500,000 cash bonus to stay for a year. He took the Facebook offer anyway.

Sources close to Google tell us that about 80% of people stay when they’re
offered a counter to a Facebook offer. But some still leave. Part of that may
be that Facebook is quietly telling people, never in writing, that there’s no
reason their stock won’t hit $100 billion in total valuation over the next
couple of years. No guarantees, yadda yadda, but hey if you get 1/10 of 1%,
that’s $100 million in stock. Now it’s a party."

[http://techcrunch.com/2010/09/01/google-making-
extraordinary...](http://techcrunch.com/2010/09/01/google-making-
extraordinary-counteroffers-to-stop-flow-of-employees-to-facebook/)

Actually, that is a lot more than a 10x difference. That is close to a 100x
difference in pay, comparing that extraordinary programmer to what some random
programmer working for Wells Fargo makes.

~~~
martinkallstrom
This explains a huge part of the real reason productive programmers aren't
paid more: In general they are providing that output without asking for proper
compensation in a way that gives them enough leverage. Facebook wanting to
hire them is giving them leverage enough, so they get paid.

Managers have leverage, so in companies making billions of dollars in revenue
top level management can make hundreds of millions.

What the productive programmers should look for is effective leverage.
Traditionally, the answer has been to form a union. I don't think that is
feasible here though, the practicalities, ideologies and the fact that the
programmers already get paid enough to eat and sleep comfortably, stand in the
way.

But you never know.

------
dstein
Eventually you just come to the conclusion that you will never be paid
adequately unless you start your own company. After all, why would a company
hire you if you aren't a good investment.

~~~
robryan
Just because someone is 10 times as effective a programmer as their coworkers
doesn't mean that they will be able to start a successful company. Sure they
will nail the technical side but may still struggle with everything else that
comes with a startup.

~~~
Charuru
It's fine to work for a company, but demand equity.

------
btilly
I'll repeat the comment that I made in the article.

A large fraction of measured productivity differences can be attributed to
differences in the office environment, and not to differences in the people.
If you're 3x more productive because you're working in a good office space,
there is no reason for the company to pay you top dollar for that extra
productivity.

~~~
techiferous
Great point. I've had personal experience with this. It's not just the
physical office environment, but the programming processes chosen and the
skill of the managers. If a manager is good enough to place you in a role on a
project where you will shine, the manager should get some credit for your
increased productivity.

------
chime
I don't like most of the arguments in this post because it tries to show you
the company's point of view on why you shouldn't get more money. While the
arguments are indeed persuasive, they're moot.

From the Economics point of view, your compensation is determined solely by
what you can negotiate. Nothing more, nothing less. If you can get a company
to pay you $120k/year to call them once a month and say "This phone call just
cost you $10k", then you most certainly deserve the money. If you work 80+
hours/week, always put the company's best interests first, work in harmony
with your coworkers/customers/vendors, be more productive than 20 other
coworkers, and still only make $25k/year, you most certainly deserve the
money.

I know it's very hard to stomach this but you get exactly what you can
negotiate. You may feel you deserve a lot more but that is just wishful
thinking if you cannot negotiate a better salary. If you make 60k at your
current job but you think you deserve more, find another company that'll offer
you more. If you get an offer, then switch (or if you really like the current
job, renegotiate based on the new job offer). If you can't get an offer with
more money, then you're currently getting paid exactly what you deserve. If
you can't accept this fact, then (1) do whatever you think will improve your
chances of making more money (2) keep looking (3) be content and realize that
the invisible hand is working.

The simple reason why even really bad CEOs get millions of dollars while
destroying the business is because they negotiated successfully. Can you?

~~~
nitrogen
The problem I have with negotiation skill determining salary is that
negotiation may be entirely unrelated to the actual job requirements, thus
destroying true meritocracy.

~~~
dagw
In very few jobs are negotiating skills unrelated or useless to the companies
needs. If you're the sort of person who can walk into your bosses office and
convince him to give you a 20% pay increase, you're probably the sort of
person who can convince a customer to agree to sign off on 50% more consulting
hours. And that is a skill any company can use and should be willing to pay
for, irregardless of what your job title happens to be.

------
jdietrich
Why aren't most developers paid in proportion to their productivity? Simple -
there are very few people who employ programmers who are capable of
identifying productive developers.

If someone is more skilled than you in a difficult-to-quantify discipline, you
have no idea whether they are 1% better than you or 100% better. We have
absolutely no useful metrics of developer productivity, so unless you're a
skilled developer yourself, you can only guess whether someone really is
supremely productive. Most managers and recruiters in tech firms can't code at
all. A lot of developers can't either, but I don't find that surprising.

------
mduerksen
It all boils down to this: What you can measure, you can pay. A company's
increase in revenue can be measured, and that's what top managers get paid
for. Measuring the performance of a programmer is very hard and blurry even
for great hackers, and impossible for a manager without hacker background (but
he's the guy you will have to negotiate with).

In the end, at least you can measure the office hours of a programmer - and
that's exactly what the average programmer is paid for.

------
parfe
I'm an order of magnitude better than other programmers in my office, base2.

------
joe_the_user
The problem with the 10x productivity _thesis_ is that it measures things
quantitatively.

In shops I've been at, I've been able to do things other workers couldn't,
like create a recursive descent parser.

That situation, though, could make have ten different ramifications given ten
different business situation. I could be 1000x times as productive since the
other guy could do nothing or I could be equally as productive when there was
something just as important the other guy could do. So the productivity
tendency depends very finely on the business and the situation. Obviously,
entrepreneurs would want to turn the things they can do that other can't into
a business advantage but that depends on still other skills and circumstances.

Anyway, measuring productivity itself might be the thing that only one person
a hundred can do, so even if there was a crazy disparity, who says it would
come out in compensation.

------
sshumaker
Many companies don't recognize the individual talent of programmers - they
merely see them as replaceable cogs in a machine. This is typically the case
for corps where developing software isn't their main business, or if
management themselves come from a non-technical background.

Why work for someone who doesn't understand your value?

------
mark_l_watson
I just had an experience that made me reevaluate my career, re: compensation
and success.

Background: I have had in a 35 year career lots of stock bonuses and good
compensation. I have actually felt occasionally guilty of getting much better
deals than co-workers because mixed in with lots of success have been many
failures.

Recently I had lunch with someone I worked with off and on for years but had
not seen in over 10 years. When he was introducing me to his wife, he said
some very complementary things about my work and I modestly said something
like "yes, but what about all the things I did that didn't work out."

He said, basically, that no one cared about my failures, just my successes.

