10x Productivity Myths: Where’s the 10x Difference in Compensation?
forums.construx.com
forums.construx.com
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.)
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?
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.)
Didn't know if you were familiar with the concept, but you should be. :)
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. ;-)
But the bad ones could really stink things up, and their self-promotion often sabotaged others' efforts.
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.
"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.
Not that Facebook would ever do that, of course.
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/
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.
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.
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.
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?
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.
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".
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.
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.
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.
Why work for someone who doesn't understand your value?
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.