Slashdot Mirror


Why Coder Pay Isn't Proportional To Productivity

theodp writes "John D. Cook takes a stab at explaining why programmers are not paid in proportion to their productivity. The basic problem, Cook explains, is that extreme programmer productivity may not be obvious. A salesman who sells 10x as much as his peers will be noticed, and compensated accordingly. And if a bricklayer were 10x more productive than his peers, this would be obvious too (it doesn't happen). But the best programmers do not write 10x as many lines of code; nor do they work 10x as many hours. Programmers are most effective when they avoid writing code. An über-programmer, Cook explains, is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'"

19 of 597 comments (clear)

  1. This has been known for some time. by MarchHare · · Score: 5, Interesting

    See, for instance, section 2 (Productivity) of the Hacker FAQ.

    1. Re:This has been known for some time. by seebs · · Score: 5, Interesting

      I really have to get around to rewriting that some day. But it's been a loooong time, and it's translated into enough languages that I'd feel sorta bad modifying it.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
  2. Another contributor to productivity invisibility . by YXdr · · Score: 5, Insightful

    The uber-coder's code works the first time - it sits there silently and invisibly working.

    Meanwhile, everyone is looking at the hard work and long hours being put in by the guy who's code needs lots of help. He gets the notice, not the guy who did it right.

  3. Anecdote from folklore.org by dysfunct · · Score: 5, Insightful

    This anecdote sums it up quite nicely. Now all we need is a few more of those and we have data :P

    --
    :/- spoon(_).
  4. I don't even think it's that well-defined. by seebs · · Score: 5, Interesting

    I have, on rare occasions, been Amazingly Productive. There are very narrowly-defined kinds of work where I am super fast. One of them is debugging. So, when we were doing our "no new features, clear out every P1 and P2 bug in this branch" run, I was awesome -- I regularly fixed many more bugs than anyone else. On the other hand... A lot of the time, I'm not much good. If I have a bad-ADHD week, I can have an entire day go by where I simply never quite get around to doing anything but mostly keeping up on my inbox.

    So am I super productive, or not very productive, or what? I don't know. Realistically, the answer is probably "if you give me the sorts of work I'm good at, I'm great, otherwise I'm sorta mediocre." But I'm not sure how you'd measure that.

    There's also a much more basic failure-to-apply-economics in the article. The value of something which does 10x as much is not necessarily exactly 10x. Is a monitor with 3x as many pixels worth exactly 3x as much? No. Is a video card which can render exactly 2x as many polygons worth exactly 2x as much? No. On the high end, you might see people paying 2x as much for 20% more polygons. On the low end, you might see people paying 20% more for 5x more polygons. Or there might be other factors; you might care about power consumption, or form factor, or...

    I just bought a new Eee. It's SLOWER than the previous one I was using. I paid about the same amount for it, several months later. But it has a higher resolution display, and better battery life... So is it worth the same amount? I have no clue.

    Long story short: The marginal value of the "more productive programmer" is not necessarily linear with productivity. Add in other complexities (plays-well-with-others, can do trade shows, reliable about giving feedback on progress) and general market forces, and I don't think it's just a question of measurement; I think it's largely that, in general, programmers are willing to work for comparable amounts of money, and the marginal benefits aren't as large as you might think they would be if you looked only at some measure of productivity. Even if it were a very good measure.

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
  5. Re:Another contributor to productivity invisibilit by GasparGMSwordsman · · Score: 5, Insightful

    The other item that almost everyone overlooks is that an Uber-coder writes READABLE code. If you look at what a really good programmer writes you will be able to understand what is going on, even 10 or 20 years after it was written. Unfortunately, most people suck...

  6. Also by Maxo-Texas · · Score: 5, Interesting

    in addition to the factors pointed out by others there is this:

    Programmer "A" is an expert and they have a strong opinion that approach "Y" is the best approach- and it is a solid approach.
    Programmer "B" is an expert and they have a strong opinion that approach "P" is the best approach- and it is a solid approach.
    Programmer "C" is an expert and they have a strong opinion that approach "3" is the best approach- and it is a solid approach.

    I've seen A,B, and C get into very loud, very heated arguments over this (I've been programmer A at times when I thought the "solid" approach was missing something that I saw intuitively which they wouldn't accept until I proved it to them laboriously).

    Programming is not plumbing. The goal posts are subject to change.

    What is efficiency?

    Delivering a 100% perfect product 3 months late?
    Delivering a 99% perfect product 1 week early?
    Delivering a 100% perfect product 3 weeks early but then they change the scope and (as one manager said to me) say "this isn't scope creep". (I turned to my programmer and asked, "can you deliver this change by the previous deadline" and they said "no" and I asked "what date can you deliver it by, and she said 5 days later, and I turned back to the sheepishly smiling manager and said, "is that date acceptable?" -- I mention this because it's a great negotiating technique. And you avoid delivering the product later than the delivered deadline without being an ass and refusing changes).

    I've known "great" programmers who were- as long as they were the only one in the company- because they used operating system cheats that worked-- as long as someone else didn't use them too.

    A lot of great programmers fail to understand the business side of things.

    And you can never control being put on a crappy project with a bad deadline and a bad manager.

    ---

    However, fundamentally- the compensation isn't there because there are too many people willing to do the work. I do not recommend to people who ask me that they enter the IT field in general any more. It's pay is not sufficient to cover the low status, increasing lack of freedom, required holiday work, and offshoring risk.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  7. Re:As always, make yourself known by PopeRatzo · · Score: 5, Insightful

    No worker in America has pay which is "proportional to productivity". That's not how our system works.

    As long as you've got CEOs making 200-400 times the pay of the average worker in the same corporation, it is impossible to have any pay which is "proportional".

    The specific kind of profits which most American companies strive for, the short-term profits that they return to their equity shareholders, make it necessary to pay all workers less than they are worth. And the trend is accelerating. If the same reduction in real income for workers that started during the Reagan administration continues, in 20 years the majority of American workers will be making about ten percent over minimum wage.

    --
    You are welcome on my lawn.
  8. Re:Because it's hard to measure by nine-times · · Score: 5, Insightful

    It seems to me that it's probably true that it'd be very hard to come up with good metrics for a programmer, but I think people should be more careful about metrics in general.

    Sure, you can measure a bricklayer by how many bricks he can lay in an hour, but is that really how you want to measure him? What about quality? Doesn't it matter if the resulting wall looks good? Doesn't it matter whether the resulting wall will hold together under stress?

    But now even those are pretty simple things. Let's get a little more complicated. You're a contractor and you hire 6 bricklayers. One guy doesn't seem to work as quickly as the rest, and they all give you comparable results. You fire the slow guy and suddenly all the other guys slow down. Quality drops. The client is less happy. What happened?

    Maybe if you look into the situation, you find that the slow guy was slow because he was spending some of his time communicating with the client. He was spending part of his time overseeing the other bricklayers, keeping them on task, and keeping them from being too sloppy with their work. He's been serving a vital role in your team, but you don't see that just by measuring a couple simple metrics.

    Like all statistics, productivity metrics can be useful, but they can also be misleading. You should make sure you really know what they mean before you make too many judgements on them. In evaluating your employees, it's better if you actually know your employees and have a sense for who they are, how they work, and how they fit together as a team. The value of a person just can't be represented in a couple of numbers.

  9. Re:As always, make yourself known by Intron · · Score: 5, Funny

    The thanks never comes down to the programmers. When the product is completed, it's likely they'll be let go, since no more work needs to be done. The sales staff could continue selling it for years, and making a profit.

    This is why I always leave lots of bugs in the code, and name the variables: a, aa, aAa, Aa, etc. They can never fire me.

    --
    Intron: the portion of DNA which expresses nothing useful.
  10. Re:What about the slow workers by istartedi · · Score: 5, Interesting

    The kitten of capitalism is fine. It's just that it grows into a cat.

    It's not capitalism you want to get rid of. It's corporatism.

    If you've ever dealt with a private bureaucracy, you know that they can be just as bad as government. The problem is more that the organazations don't scale. Also, the tendancy for all these corps to behave in a similar way dulls the effect of competition.

    As individuals we don't have much power; but we can start by patronizing small businesses even if it costs more. Think of the added cost as a tax paid to a shaddow government, the true government of the people--the one that fights the big corporations instead of working for them.

    No, this is not communism. Communism is dead. It's a 19th century idea born out of the first wave of industrialization. We need 21st century ideas, so forget the tradtional worker vs. capitalist tension, please, Please forget it. Let's not relive that.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  11. Re:If something is hard to measure... by Ethanol-fueled · · Score: 5, Funny

    I knew a couple folks in my small development shop (~20 people) who were always being rewarded because the informal metric was lines of output. I had to take over for one of the top performers after she left for vacation. Looking through her code, I discovered that the code was merely average, much like mine. I asked another top performer if I could look through his code because I wanted to better understand his interface. His was also mediocre code with roughly the same ratio of lines to output as my code was.

    When the other top performer came back from vacation, I took the two of them into the break room and asked them why they are getting undue credit based on the "lines of output metric". They both chuckled and gave each other knowing glances before one of them said, "No, silly, it's how many lines of cocaine we bust out to the boss...see?" The woman pulled out a small bag of whitish powder, a razor blade, and a scratched-up mirror tile. The guy rolled up a 20 dollar bill, tight as a drum, and passed it to me. "Go! Go! Go!", they whispered as I bent down with the tooter in my nostril, snorting 3 medium-sized lines of sweet Columbian. I had felt a strong euphoria like 1,000 cups of coffee overwhelm my body. The guy giggled sheepishly in a high-pitched voice as he went back to work. The woman who was still with me chopped up 3 more gaggers and snorted them up before we fucked madly in the utility closet like wild beasts during the rut. Oh, what a day that was!

  12. Re:As always, make yourself known by BitZtream · · Score: 5, Insightful

    Another thing is that coders aren't usually that good at expressing themself, so it may not be obvious who is being more productive than others.

    Bullshit. Good programmers are great at expressing themselves, thats what programmers DO. That excuse is made by crappy 'programmers' who are really just introverts who aren't actually good at programming but rather are even worse at dealing with other living creatures.

    A programmers job is to take an idea and express it in a way a computer can understand. All we DO is express ourselves, if you aren't good at expressing yourself, you aren't a good programmer.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  13. Re:As always, make yourself known by TheRaven64 · · Score: 5, Funny

    A programmers job is to take an idea and express it in a way a computer can understand

    Half right. A programmer's job is to take an idea and express it in a way that both computers and humans can understand. If only a computer can understand it, you might be a Perl programmer.

    --
    I am TheRaven on Soylent News
  14. Re:there are Programmers then here are PROGRAMMERS by sartin · · Score: 5, Interesting

    Heck forget memory limits, those were easy (he said, using his tongue to push his dentures back onto the roof of his mouth while tugging his pants up over his belly button), one time my lab partner and I re-coded our elevator simulator (written in machine code, not assembler, you wimps!) so that we could enter it with a hexadecimal keypad that was broken so the "E" key debounce didn't work. For you whippersnappers who never entered machine code with a keypad (not keyboard!) or switches, that means we rewrote it so that no machine instruction (one byte instructions) or data byte had "1110" as the lowest four bits. No that was programming.

    Cyril, my lab partner, wound up being Bob Moog's protege and has become the key designer at Moog. Wonder if he remembers that afternoon in EE lab.

    Then there was Bob in high school, who reconfigured RSTS control blocks through the front panel switches on the PDP-11/40 to enable root-like privileges. Now, that was art: several levels of indirection, the machine needed to be halted to use the panel, but it was a timeshare system and you had to get it running before any of the users noticed. Pure art, until that one time he made a mistake and caused a crash that rewrote the master file directory with all zeroes. That was a long night writing, testing, and running a program in BASIC that used heuristics to read the disks and a three month old backup (for getting user IDs and old passwords) to recover the directories on the disk. When the security guard came in at 3 AM, Chris (the friend helping me fix Bob's mistake) had to talk the security guard into not waking up the Dean of Students to report us. Bob got kicked off the admin staff for a while. Things got boring after that.

    Now, back to my afternoon nap.

  15. Re:As always, make yourself known by Sabriel · · Score: 5, Insightful

    Oh, what the hell. I'll say it. That "good CEO" couldn't do the job without standing on the shoulders of everyone underneath. And emotions are *important*, because otherwise we'd be a bunch of robots (and some CEOs would love that, darling little sociopaths that they are).

    Ability to shoulder risk? Stability? How many billions have we had to throw away on bailouts because a bunch of those CEOs turned out to be incapable of giving a damn about the risks - to other people - of destabilising the economy?

    Frankly I don't think many here would mind that CEOs can make many times average worker pay if they didn't also see CEOs sailing off in their new yacht/plane/limo while the company retrenches a quarter of its workforce because times are "tough"...

    Gross disparity during adversity (whether real or PR snow job) is poisonous to morale - and, for those who insist on "rational analysis", also to productivity.

    Finally, I do think there are good CEOs out there. More than the bad. But it doesn't require a lot of bad ones to break the system, and when the system itself rewards sociopathic behaviour, that's not good and does not bode well.

  16. Here we go again by e2d2 · · Score: 5, Insightful

    I almost stopped reading when he said Joel Spolsky.

    Joel is always looking down his nose at other coders who don't have degrees from MIT. Yet he thinks pointers are the ultimate test of a programmer. He has written one tool that is of note - Fogbugz. That is, if he even wrote the code.

    He just reeks of "I know better". He wrote his own language to code-gen classic ASP applications, along with PHP. Right there is a red flag. Did they move to the new ASP.net platform? Nope. That wasn't good enough I guess. No they decided to stick with classic ASP and write a language that outputs both ASP and PHP. Epic arrogance combined with ignorance IMHO.

    Then look at Fogbugz. It's just a typical bug tracking application. That's it. Did it need a new language? Hardly. So now these guys wasted all that time on something only they can use and it makes zero dollars. Way to go. Real top notch development there. Fact is his company is small potatoes.

    Why do I rant on Joel? Because this guy is believing the shit he spouts and extrapolating from it. Frankly I'm sick of hearing from him about what makes a good programmer. If you aren't a good programmer yourself then STFU about what makes a good programmer. Writing a few insignificant applications doesn't make you a rock star.

  17. Re:As always, make yourself known by jc42 · · Score: 5, Interesting

    The thanks never comes down to the programmers. When the product is completed, it's likely they'll be let go, since no more work needs to be done. The sales staff could continue selling it for years, and making a profit.

    Actually, this is the way that "creative" professions have generally worked. Consider the typical sculptor or painter. Even those that reached a level of fame have usually been paid only once for each creation. It is then owned by the client, who can resell it and not give the creator any part of the sale. There are a few countries that have dabbled with royalties for resale, but this is rare, and the royalties are typically small. The real profit from art goes to the sponsors and investors.

    Authors and musicians have had some small success in getting royalties for their work. But this is most often "honored in the breach". It's well known that recording artists don't get any royalties at all, and may lose money, unless the recording sells around 1.5 to 2 million copies. Before that, all the income goes to the owner of the recording, which is the corporation that produced and marketed it. Even after a recording reaches the profitable stage, the artist typically gets only a few percent of each sale. The situation is similar with authors, who may be paid a small "advance" before production, but rarely makes a profit until several million copies have been sold. Most writers have worked for corporations such as newspapers or other periodicals, who pay a salary and claim all income from sales.

    The movie industry has a few showcase stars who have made a small fortune in royalties. But most actors are "starving artists" who have to work at part-time jobs to get rent and food money. Movies are owned by the producers, not the actors. The few stars are held out as bait to attract the many workers who will never be stars and will never make a decent living from their creativity.

    Software programmers like to think that they're something new that the world has never seen. But in reality they are merely creators in a new medium, and they are treated as the commercial world has always treated creative types. They're workers who can be paid a small salary to produce, and when they produce something that sells, the corporation can claim the profits. A few stars can be paid some royalties (still only a few percent of sales) and held up as public examples to attract the many workers that the industry needs.

    Don't expect to see this change in your lifetime.

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  18. Re:As always, make yourself known by dtfusion · · Score: 5, Insightful

    There is a very simple counter factual to this. CEO pay has grown 6 fold since 1990 (Forbes). The economy hasn't. Median salary hasn't. Have they somehow become six times rarer or six times more effective without the economy noticing? The market doesn't drive ceo salary. Productivity doesn't drive ceo salary.