I noticed something similar, though not as a programmer.
I tested videogames one summer, where it was my job to locate and report bugs. It was soon apparent that there was huge variation in productivity: some people submitted more and better bugs, in better written reports, than others.
Most people were hired as independent contractors through an outside company. A select few would be hired by the actual game company, and kept on through the season. Was it the most productive who were kept on? No. It was the people who put in the most overtime hours, and made themselves available when the company asked.
Call me an ignorant youth, but it seemed like, if they wanted to, they could raise salaries, fire the bottom X%, and hire some more talented QA testers, and still come out ahead.
Cook's explanation doesn't really explain this scenario, but I have a feeling the answer is similar, for both the QA tester and the programmer.
My theory: management simply doesn't care, and doesn't need to. If you were to walk out, they could easily get someone else at the exact same pay-grade. It's only when your value to the company is crystal clear, and you are clearly better than the competition, and that there's a viable threat that you will leave somewhere else and actually get better pay, that a company will pay you accordingly.
After all, economics doesn't say you get paid what you're worth. It says you get paid the market clearing wage. You might be creating $200 of value per hour for your employer, but if there are tons of people ready to work for $10 an hour and are just as productive, then you will get paid $10 an hour.
This is more conjecture, but I think for things to change, for people to be paid according to their productivity, two critical pieces of information are essential:
1. Exactly how productive you are, relative to your peers.
2. Exactly how much people of varying abilities make.
The problem is, for #1, the metrics are bad if at all existent. For #2, there's a huge taboo against telling people what you make, which ultimately helps employers keep wages lower.
I think my QA testing situation would have been different if say, the men in charge took some pride in it, and only hired great testers. They didn't, they were just filling slots, so the QA on the QA testers themselves was pretty shoddy.
"Call me an ignorant youth, but it seemed like, if they wanted to, they could raise salaries, fire the bottom X%, and hire some more talented QA testers, and still come out ahead."
Not ignorant at all; this is a very insightful observation. I've seen the same thing from the programming side. Unfortunately, an unskilled programmer can create more and longer-lasting damage than an unskilled QA tester -- some code sticks around for decades and has layers and layers of new code built on top of it. Thus, bad programmers can drag down other programmers' productivity long after they've left the project. So the advantage of replacing a lot of bad programmers with a handful of good ones who are better paid could be even greater.
Not to mention that a smaller group has much less communication overhead than a larger group (as described in The Mythical Man Month).
I tested videogames one summer, where it was my job to locate and report bugs. It was soon apparent that there was huge variation in productivity: some people submitted more and better bugs, in better written reports, than others.
Most people were hired as independent contractors through an outside company. A select few would be hired by the actual game company, and kept on through the season. Was it the most productive who were kept on? No. It was the people who put in the most overtime hours, and made themselves available when the company asked.
Call me an ignorant youth, but it seemed like, if they wanted to, they could raise salaries, fire the bottom X%, and hire some more talented QA testers, and still come out ahead.
Cook's explanation doesn't really explain this scenario, but I have a feeling the answer is similar, for both the QA tester and the programmer.
My theory: management simply doesn't care, and doesn't need to. If you were to walk out, they could easily get someone else at the exact same pay-grade. It's only when your value to the company is crystal clear, and you are clearly better than the competition, and that there's a viable threat that you will leave somewhere else and actually get better pay, that a company will pay you accordingly.
After all, economics doesn't say you get paid what you're worth. It says you get paid the market clearing wage. You might be creating $200 of value per hour for your employer, but if there are tons of people ready to work for $10 an hour and are just as productive, then you will get paid $10 an hour.
This is more conjecture, but I think for things to change, for people to be paid according to their productivity, two critical pieces of information are essential:
1. Exactly how productive you are, relative to your peers. 2. Exactly how much people of varying abilities make.
The problem is, for #1, the metrics are bad if at all existent. For #2, there's a huge taboo against telling people what you make, which ultimately helps employers keep wages lower.
I think my QA testing situation would have been different if say, the men in charge took some pride in it, and only hired great testers. They didn't, they were just filling slots, so the QA on the QA testers themselves was pretty shoddy.