
Why programmers are not paid in proportion to their productivity
- Transfer
The most productive programmers are orders of magnitude more productive than their ordinary colleagues. However, the salary range usually has a small variation in any company. Even in the profession of the whole profession, the level of income does not vary much. If some programmers are ten times more productive than others, why don't they get as many times as much?
Joel Spolsky gave several answers to this question in one of his podcasts . Firstly, the productivity of programmers varies greatly within the profession, but such a variation may not be in a particular company. Someone who is 10 times more productive than their colleagues is likely to leave to work with other talented developers, or open a business. Secondly, high performance is not always obvious. Let us consider in more detail the second option.
How can someone being 10 times more productive than associates go unnoticed? In some professions, this difference will be obvious. A seller who sells 10 times more will be marked and rewarded accordingly. Sales are easy to measure. Some seller will earn orders of magnitude more money than others. If a bricklayer worked 10 times more efficiently than his colleagues, this would also be obvious, but this does not happen: the best bricklayers cannot lay 10 times more bricks than the average worker. Software production cannot be measured as easily as money or bricks. The best programmer will not write 10 times more lines of code and most certainly he will not work 10 times longer.
Programmers are most effective when they avoid writing code. They can understand that the problem that they are asked to solve does not need a solution; that the client doesn’t really want what they are asking for. They can find out where to find pieces of code that can be used to suit their needs. They can be tricky. But just when they will be the most productive, no one will say: “Wow! You just worked 100 times more efficiently than if you were solving the “forehead” problem. You deserve to be promoted. ”At best, you might hear something like“ A good thought! ”It may take some time before you realize that someone regularly offers time-saving ideas. Or, speaking from a negative point of view, it may take considerable time for someone to understand - some people write code frantically, but do not produce anything.
The romantic image of a super-programmer is someone launching Emacs, printing at the speed of an automated queue, and delivering a flawless end-product from scratch. A more accurate picture depicts someone who will peer into the void for a few minutes, and then say: “Hmm, I think I’ve seen something similar somewhere.”
Joel Spolsky gave several answers to this question in one of his podcasts . Firstly, the productivity of programmers varies greatly within the profession, but such a variation may not be in a particular company. Someone who is 10 times more productive than their colleagues is likely to leave to work with other talented developers, or open a business. Secondly, high performance is not always obvious. Let us consider in more detail the second option.
How can someone being 10 times more productive than associates go unnoticed? In some professions, this difference will be obvious. A seller who sells 10 times more will be marked and rewarded accordingly. Sales are easy to measure. Some seller will earn orders of magnitude more money than others. If a bricklayer worked 10 times more efficiently than his colleagues, this would also be obvious, but this does not happen: the best bricklayers cannot lay 10 times more bricks than the average worker. Software production cannot be measured as easily as money or bricks. The best programmer will not write 10 times more lines of code and most certainly he will not work 10 times longer.
Programmers are most effective when they avoid writing code. They can understand that the problem that they are asked to solve does not need a solution; that the client doesn’t really want what they are asking for. They can find out where to find pieces of code that can be used to suit their needs. They can be tricky. But just when they will be the most productive, no one will say: “Wow! You just worked 100 times more efficiently than if you were solving the “forehead” problem. You deserve to be promoted. ”At best, you might hear something like“ A good thought! ”It may take some time before you realize that someone regularly offers time-saving ideas. Or, speaking from a negative point of view, it may take considerable time for someone to understand - some people write code frantically, but do not produce anything.
The romantic image of a super-programmer is someone launching Emacs, printing at the speed of an automated queue, and delivering a flawless end-product from scratch. A more accurate picture depicts someone who will peer into the void for a few minutes, and then say: “Hmm, I think I’ve seen something similar somewhere.”