Hacker News new | past | comments | ask | show | jobs | submit login
10x Productivity Myths: Where’s the 10x Difference in Compensation? (construx.com)
62 points by dangoldin on Jan 23, 2011 | hide | past | favorite | 34 comments



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...

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.


This assumes both that you'd get .1% (fairly generous to my understanding for someone who is not VP of Engineering) and, critically, that you'd be allowed to keep it. Savvy people whose only job is maximizing the firm's return during investment / M&A / etc have been known to retroactively adjust equity grants of employees, particularly employees who are not in the room when the decision is made.

Not that Facebook would ever do that, of course.


What if it is .01% and suppose that the base price for options is pretty low? .01% of a $50 billion company is still $5 million. Even if you earn just $2 million out of that, it will still beat accepting Google's offer hands down.

If you're good, you can also go back to Google once your options at FB vested. See Cuil founder: http://techcrunch.com/2010/12/14/cuil-google/


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.


I'm surprised 80% of people take it. Granted, $500k is nothing to sneeze at. But you have to ask yourself why they don't offer you that bonus until you have an offer from facebook. This to me says it's less about retaining the engineer and more about keeping facebook from getting good engineers.


I don't think it's anything that dark. I think it's a case of someone else wanting YOUR candy making you realize just how delicious that candy must be... After all, someone else wants it!


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.


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.


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


There are a few other ways, though I sure like that one. Consult. Change your job title from developer into something the business cares about. Quants are still a good investment at $500k. (A web developer with strong skills in technical marketing ain't that far off, either.)


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.


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.


I think that 10x gain can be split into several multipliers like environment, tools and experience.

http://page.mi.fu-berlin.de/prechelt/Biblio/jccpprtTR.pdf

There is already a disparity between tools (see link above, figures 15 and 16), about 3 times in programming speed. Multiply it by 2-2,5 times from environment and you already get disparity about 6-8 times. If you add experience or talent as a 1,5 multiplier, you will arrive to disparity of 9-12 times between best and average.


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?


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.


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.


There is a limit to how much the negotiation skill can get you - at least over the average for your position, that is. Mad negotiation skills can of course get you into mad paying jobs, but this is not the point.

When you fix the position then I think that the factors outlined in the article have a lot more influence over salary than negotiation skills.


"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."

The article is not about "should", it's about the "why". Well, maybe except the last section but even there the author refrains from making any strong claims.

The author's analysis of the "why" is more insightful than "because that's what got negotiated".


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.)


"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?


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


It sounds like you've worked at some very inefficient companies.


Most big companies are incredibly inefficient bureaucracies. Contrary to popular belief, big companies aren't any better than government agencies from an efficiency point of view (probably worse, actually).


I have to say this matches my personal experience, at a number of companies. A few highly productive people, and a fair number basically growing their arses (literally, or, I suddenly realize, figuratively).

I worry about coming across as excessively bitter (and so useless, myself). But I've done some of the "productivity enhancing work" myself, including in Perl (lack of budget turned out, in this instance, to be a fortuitous gift in disguise). At one point, I basically replaced a five person department with myself, in the face of attrition both voluntary and forced. (This was before I learned to be one of the first rats off the sinking ship.)

Throughout all of this, my biggest hindrance has been non- and especially counter- productive coworkers. Even management's asinine budget restrictions and decisions were nothing compared to the disruption causes by the more self-serving, ignorant buffoons.

Too bitter, again. On the other hand, I had some great coworkers with whom I really enjoyed working, a great deal.

It didn't matter what department or division you were in. As you met these people, there tended to be mutual recognition and understanding. In the future, you could pick up the phone or send and email, and get what you needed, no matter how many layers of management above might be opposed to the idea (whether on some sort of "principle", e.g. the latest management guru book they read; or due to ambition and empire building; due to personal animosity; blah blah blah).

In several roles, I've set precedent as a result of this cooperation. People learned I didn't fuck things up, and I made their lives easier. In turn, I could e.g. bounce the server, despite not being in Ops. It was a lot more efficient. Gradually, they realized they could let some other people do that, as well -- often after I trained them.

It's not arrogance, either. One of my replacements had some trouble with some concepts, but actually stuck in the job with a really good will to master it and do the best she could. So, when my lazy management wanted to can her and try the fourth friggin' hire in a year -- because she wasn't "quick enough" -- I told them where to get off. And she kept her job.

It's not just about being the biggest brain. It's about trying and doing your best.

A lot of people in corporate America only do enough to stay in the seat. And often, they get in the way of the people actually trying to get stuff done.

(As to why I stayed long enough to accumulate this experience? It's complicated, in my case. I hope that, in sharing it, some others may recognize it a bit sooner in their own lives. And realize that some of these same obstructions are the ones who are self-serving enough to jump ship early and often, frequently ironically ending up better off and sparing themselves some of the misery of a downturn in the company. That is, if the economy is doing well enough and if their BS is good enough.)


What you're talking about is having "flipped the bozo bit" on everyone that sucks.

Didn't know if you were familiar with the concept, but you should be. :)


I seem to recall the term, and I understand the perspective, I think. Although I've learned to be cautious, as along will come a situation where I find I have to "unflip" it, at least for the current context.

So, I'll usually at least listen to the initial pitch. And even when there's nothing to it, sometimes it's easier to listen and then ignore, than to get into a debate. It's difficult and often useless to debate someone unwilling or unable to change their perspective.

The hard part with the bozo bit, though, is recognizing when you have to flip it for yourself. And a chronically stressful situation seems to bring that on, sooner or later. ;-)


Upon reflection, I realize / recall that I worked with a lot more good eggs than bad. Some people I grew quite fond of.

But the bad ones could really stink things up, and their self-promotion often sabotaged others' efforts.


I've been fortunate enough to work for companies that recognized programmer talent. If you're working for a big corporation, there are plenty of HR restrictions that prevent dramatic salary adjustments. But even then, I've seen 2-3x pay differences - usually coupled with promotions.

In the startup world, a very talented developer can usually get equity even as an employee if they join early on, which can increase the multiple way beyond 10x if the company is successful. And if you are capable of being a technical co-founder, obviously there's the shot of a lot more.


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.


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.


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


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.


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?


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: