Live data from Hacker News

Why programmers are not paid in proportion to their productivity

johndcook.com

101–110 of 133 posts

Re: Why programmers are not paid in proportion to their productivity

#101
post #42
post #38

what kind of salaried professionals do get paid based on productivity?

The only people who get paid according to their productivity are the ones that own their own business, individually or collectively (in a partnership). Everyone else is paid "market rate" which is the lowest rate someone else is willing to accept to do the same job, and is able to deliver. These are completely different compensation models.

Untrue, many salaried finance types eat what they kill in bonus comp, even some developers (front office developers or quants) if they're responsible for driving P&L and not just a cost center.

I guess you could argue that they aren't salaried since their bonus compensation is usually significant, often many multiples of their relatively low base salary.

Re: Why programmers are not paid in proportion to their productivity

#102
post #42

Earlier quoted context omitted.

The only people who get paid according to their productivity are the ones that own their own business, individually or collectively (in a partnership). Everyone else is paid "market rate" which is the lowest rate someone else is willing to accept to do the same job, and is able to deliver. These are completely different compensation models.

Untrue, many salaried finance types eat what they kill in bonus comp, even some developers (front office developers or quants) if they're responsible for driving P&L and not just a cost center. I guess you could argue that they aren't salaried since their bonus compensation is usually significant, often many multiples of their relatively low base salary.

Good point. Having never seen one of those people I have forgot about their existence when writing this post.

To the point consider this - if you are my employer and you pay me performance bonus, do you have some money left for yourself? I imagine some of the value I generate as an employee gets captured by the company, otherwise they wouldn't keep me around, right? Therefore, self-employment is the only way to keep all the value you have created.

Re: Why programmers are not paid in proportion to their productivity

#103

I'm young enough that I can still change my career easily, and I often worry that I'm not one of the super productive programmers, and that I'm wasting my time and that I should choosing a different career. Is uber-productivity significantly enhanced by choosing the right development methodology (e.g. test-driven development) or is it mostly something innate? Aside from stories like rdouble's (which I don't find that…

I have found that uber-productivity is domain specific. I might be uber-productive in a particular domain (Java programming), however put me in an environment that does Groovy programming and I will stink as much as the next newbie. However good programmers develop techniques for meta-uber-productivity. They know what it takes to get uber-productive in another domain in a short time and what works for them. My way to…

I've found that most of the competent developers I've met haven't had a whole lot more difficulty switching languages than the significantly better developers. There's a lot of synergy between modern programming languages.

For instance, I started with Java, then moved to Python, learned COBOL and a little bit of php and ASP around the same time, then finally switched to Ruby, where I do most of my programming now. A lot of the things I learned in Java were still relevant in Python, and the same was true with the switch from Python to Ruby. COBOL was a bit of an outlier since I wasn't using the OO version of COBOL, but I already had a grasp on logic and flow of control, so even that wasn't that much of a stretch.

I'm definitely not one of those elite programmers, even though I do seem to grasp concepts better than a lot of my classmates, so I find categorizing domain as a programming language in relation to programmer ability is flawed. Once you've achieved competency in a few languages, you should be able to switch languages without too much trouble, assuming those languages at least have a moderately similar paradigm (a notable exception might be, say, Java -> Lisp).

It's the ability to understand concepts that tend to separate the good from the mediocre, and that might have been what you meant when you referenced "domain."

Re: Why programmers are not paid in proportion to their productivity

#104

Earlier quoted context omitted.

That is roughly equivalent to saying that the true measure of an employee's productivity is their salary. What are you measuring?

It's measuring the amount someone is willing to pay you for your work. By an economist's definition, that's your output. If you divide your output by number of hours worked, that's your productivity, again by economist's definition. I make no claims as to how useful these definitions are. There's a reason why economics is called the dismal science. But terms like output and productivity do have accepted definitions -…

As someone who's been on both sides of the fence, this is untrue. You pay people more or less what is sufficient to keep them happy (within reason). When you're hiring a new employee, you tend to pay them their current salary + some percentage raise. So the biggest determining factor of your salary will be how much you made at your last job.

This does mean that you end up with employees who are clearly superior getting paid less than some of their inferior peers. Certainly when I was a mere employee the idea that I was working harder and better than someone who got paid twice my salary was galling. But there are plenty of employees who aren't as concerned about what their peers are getting paid. Most of the time, assuming your salaries are relatively generous, I've learned that employees feel they are personally being rewarded sufficiently, and that's what matters to them. For those who make it more of an issue, you try to accommodate them if they're worth it.

That said, it is really important to reward superstars to keep them really happy. Often, this means salary / bonuses, but sometimes it means type of work and the role they get to play on the project.

Re: Why programmers are not paid in proportion to their productivity

#105
post #46
post #22

Being super-productive isn't always wise for the black belt coder. In the traditional world of commercial programming if you solve the problem in a couple of hours and then just spend the rest of the day fooling around, reading scholarpedia or working on your own pet projects managers often don't look upon this kind of behavior favourably - they think you're not being productive, when in fact the opposite is the case…

I'd disagree with your description of "super-productive", that sounds like normal-productive with time to fool around. Do something productive with the extra time (either more coding or, better, something else business related like running the finished app past someone who might have to use it) and there might be a chance of hitting "super-productive". (fast + time wasted = normal speed)

Let me re-phrase that. If you... solve the problem in a couple of hours and then spend the rest of the day fooling around ... then you are as productive as the guy who spent the whole day on it, not super-productive. (The other guy probably spent half the day reading Hacker News anyway.)

Re: Why programmers are not paid in proportion to their productivity

#106
post #86

Earlier quoted context omitted.

I'm skeptical. What evidence do you have for this? Maybe some people who have a better start (those who are "naturally" talented) receive better instruction, or are more inclined to practice more often.

Programming ability is more like athletic ability than most people want to admit. Some guys just get better, faster. Some guys can't ever break certain plateaus, no matter how hard they try. In golf, it's probably possible for anyone to go from a duffer to a scratch golfer. But it might take 20 years of work for someone who isn't set up with the right natural gifts. Quality and amount of instruction and practice will…

I think it may be more that there are certain mental blocks that can hold you back completely, but once you get over them, your skills improve rapidly. Some people are fortunate enough to start with the "right" way of thinking about those, and so they just sail over the blocks with ease. Others need a mental shift in perspective before they can understand the fundamentals, and so they're "stuck" for a long time with virtually no progress.

I sailed through math and physics and chemistry in high school. I suspect this is because my dad was a nuclear chemist. I didn't have to learn how to think scientifically, because it was ingrained in me from the age of 3, and it never occurred to me to think any other way. But I'm now in my late 20s, and it's the other kids in my high school class, the ones who struggled through everything, that are now finishing their chem Ph.Ds. Because they decided consciously that chemistry was something they wanted to be good at, while I decided my interests lay elsewhere and didn't bother breaking through all the other mental blocks that crop up when you do college-level hard sciences.

I think a lot of skills have this same pattern - hard skills that can take forever to learn, followed by a bunch of easy and flashy tricks that come easily once you master the basics. My violin tone improved markedly and rapidly once I learned to use "arm weight" instead of simply pressing hard on the string. When I was doing whitewater kayaking, the experienced kayakers would say "Once you learn to roll, your skills just shoot up, because you aren't afraid of trying things any more." Last Olympics, there was a video interview with the U.S. women's gymnastics team where they asked each of them "What was the hardest skill to learn?" Shawn Johnson replied, "The hardest skill for me was my kip." (For non gymnastics fans, the kip is basically a prerequisite for all bars moves, and is usually learned around age 7.) There's an Olympic champion, but if you looked at her gymnastics in elementary school, she spent well over a year on a really basic, fundamental skill that some people get in three tries!

I think this may be why a lot of software engineers ask about pointers and recursion as interview questions. Those skills themselves are rarely useful. But they are hard mental blocks that often weed out a lot of prospective programmers. And once you've got them, a bunch of other algorithms and data structures open up for you. If you understand pointers and recursion, you can learn about linked lists, balanced trees, dynamic programming, hashtables, and all those other fundamentals in short order. If you don't, you might forever be stuck using frameworks that other people put together for you.

Re: Why programmers are not paid in proportion to their productivity

#107

From the article: > someone who stares quietly into space for a few minutes ...and exactly here lies the problem. I've been fired from a job because according to an old retiree who never saw anyone programming before, "he spent his days scratching his beard and looking blankly at the screen". No mention about the job being done and the extra $1M my ideas saved. And certainly no apologies after they had to replace me…

I guess the magic happens when you found that company :-)

Re: Why programmers are not paid in proportion to their productivity

#108
post #16

The author has not ever worked with the truly 10x more productive programmers. Most people do not get the chance to work with these programmers. They do get paid in proportion to their productivity. There are so many horrible programmers that you can be mediocre and be 10x more productive than the guy next to you. Thus you think you're in the 10x crew. But you really aren't. It's not because you're really that good.…

Hmm, I remember using Gnutella back in the day. It was horribly buggy and slow. Maybe Frankel didn't write that one or maybe being satisfying things half-working was the secret to x100 productivity.

I used Gnutella too. It was horribly buggy and slow. However, remember that they wrote it in a weekend, and what it was attempting to do really was pretty revolutionary.

Even brilliant programmers can only accomplish so much in a weekend.

Re: Why programmers are not paid in proportion to their productivity

#109
post #16

The author has not ever worked with the truly 10x more productive programmers. Most people do not get the chance to work with these programmers. They do get paid in proportion to their productivity. There are so many horrible programmers that you can be mediocre and be 10x more productive than the guy next to you. Thus you think you're in the 10x crew. But you really aren't. It's not because you're really that good.…

I think this comparison is a bit unfair. The guy who made Winamp had significant experience in creating audio related programs. Winamp had a lot of audio tweaking/editing-like features also. By taking his investment of knowledge about audio programming, he saved a significant amount of time in recreating something similar with his pro tools v0.0.1. I wouldn't be surprised if he copied a good chunk of code from winamp too.

Also he was starting from square one. It might take me a few weeks to make enhancements to some add on website I'm unfamiliar with using clunky web tech fighting with a badly architectured framework, while it would take me a day to make the same thing with a concise and elegant API starting from scratch. Later on I might become faster in changing the website.

It's like a phd physicist talking about how that math phd clobbered him in an analytics course, when really he just had more invested.

Or as the article says: "“Hmm. I think I’ve seen something like this before."

Re: Why programmers are not paid in proportion to their productivity

#110
post #102

Earlier quoted context omitted.

Untrue, many salaried finance types eat what they kill in bonus comp, even some developers (front office developers or quants) if they're responsible for driving P&L and not just a cost center. I guess you could argue that they aren't salaried since their bonus compensation is usually significant, often many multiples of their relatively low base salary.

Good point. Having never seen one of those people I have forgot about their existence when writing this post. To the point consider this - if you are my employer and you pay me performance bonus, do you have some money left for yourself? I imagine some of the value I generate as an employee gets captured by the company, otherwise they wouldn't keep me around, right? Therefore, self-employment is the only way to keep…

If you own the business, why would any rational market participant buy your product or service without expecting it to create more value for them than they paid? Same thing, really.

The issue posed by the original post was that great programmers are not paid proportionally to their output, not whether their employer makes a spread on them.

You're correct though that the closer you get to the money the more value you'll capture. You also take more risk. How many startups have folded where junior engineers made $100k/yr and investors and founders left the endeavor with nothing or a net loss? Depending on your life situation, being more risk-averse and taking the guaranteed paycheck isn't such a bad thing.

Post reply on HN