The thesis of the article makes two assumptions:
1. that pay differences are due to merit and
2. employees do not want a merit based system so if they discuss salaries they will intentionally dismantle that system
Both of these assumptions are in error. It is the job of every business man (and likely the instinct of every human) to buy value as cheaply as possible. Thus an employer will tend offer the lowest amount possible regardless of the employees productivity. We know this happens in practice because salary negotiation is at least as critical as technical skill.
Additional evidence is that changing jobs results in much higher wage increase than staying put, if wages were connected to skill this would not happen. Likewise fiscal desperation of the employee results in accepting lower wages but if salary is merit based, why were those lower wages were offered in the first place. And of course we know that race, gender, marital status, religion and age were or still are factors in salary.
The second assumption is also thoroughly untrue. Typical human behavior is to want compensation proportional to productivity and to live in a system that allows this. The contrary has words like "dishonest", "cheating", "theft" and "unfair" associated with it and is almost universally socially deprecated. It is exactly why grinding in video games are is popular, it taps this very fundamental desire. Which desire is exactly not being met by work so players seek simulated work after hours.
> Additional evidence is that changing jobs results in much higher wage increase than staying put, if wages were connected to skill this would not happen
This can definitely happen if wages are linked to value.
You are not identically valuable to all companies, and since changing jobs is something that usually has some general cost/risk associated with it, it's regularly done for larger rather than smaller salary increases.
>You are not identically valuable to all companies
This is very true and certainly affects the very theoretically top limit of the job offer. But when deciding compensation the actual calculation is only remotely based on the value the employee brings your particular problem.
In practice an offer is mostly based on the employee's current market value (ie how easy it is to get someone cheaper) and how much he is currently making (ie the minimum amount I can offer and still get him to accept) and some social acumen around ability to negotiate a salary.
So yes, when you change jobs your salary is more likely to rise if an organization can use you more effectively. But it will always max out based on how easy you are to replace. This and only this is the pay you will eventually reach if you change jobs enough. And that has no connection to the value you produce but is solely connect to the number of people with your skill vs number of openings.
I don't think I assumed what you say I did. That said, your "human instinct" of getting the most in exchange for the least - would it not extend to employees and not just businessmen? Assuming both are equally human, you'd expect people to have a tendency to slack off and to like it when it doesn't hurt their bottom line.
The first paragraph mentions two employees with different salaries. One resents the others and so wants them equalized. If the difference is _not_ merit based then equalizing the salaries is a _good_ thing. Since the articles states equalizing is a bad thing, there is a hidden assumption that inequality is due to merit.
Likewise you do not want decision makers to be deterred from giving raises to some and not to others. This behavior would only be desirable if those raises were merit based. If they were not merit based than they should indeed be deterred. etc.
> Assuming both are equally human, you'd expect people to have a tendency to slack off and to like it when it doesn't hurt their bottom line.
Yes, presumably every employee will try to get the highest pay per work unit possible. If they do not know the salary of their coworker and their coworker has negotiated a higher rate then a disparity will exist that is not due to merit but due to negotiation. If they know about this disparity then either 1. they can demand the same rate thus be more meritocratic or 2. (less likely) the low productivity employee will be pressured or have his (lack of) work more reported on by peers. In this case, the resentment you mention is actually a useful thing.
If a pay differential is justifiable then the employer will have no problem explaining it to the lesser paid person or, if he gripes, replacing him with someone who produces the same or more per dollar and being better of for it.
Put simply, if two employees are paid the same and know it but one spends the day on facebook, the other will demand a raise and the employer will either grant it or loose one of the workers. Any of those three outcomes is an improvement.
Put even more succinctly, a system with more open information (eg regarding salaries) will be more efficient than a more information closed system.
A resenting B says nothing about their relative merit, just about merit as perceived by A. A usually sees more merit in A than B, C or D. B, on the other hand, tends to overstate B's merit.
So no matter how wages are set, and regardless of disparities between salaries, people will find the wages unfair. In this sense equalization is bad because it reveals everyone's wage. The best is unknown inequality.
Of course it has own its drawbacks, I was just pointing out this one angle.
While I agree with most of your post, I am not sure this:
> Typical human behavior is to want compensation proportional to productivity and to live in a system that allows this.
is entirely true. I think humans want "fairness" and in many ways it's different than raw productivity. Two main problems I see:
1. Other things than people (usually called capital) have productivity on its own (unless you believe in labor theory of value, which leads to logical contradictions). If you are paid for your productivity, you are not paid for the excess, things produced by the capital. For example, a new automation is invented which makes you more productive, but you now do less work. How should the surplus be distributed? In fact, I am of opinion that if I would be paid for my actual productivity (my contribution to it as a human being in contrast to contribution by machines and know-how) in modern society, I would be homeless next month. Yet, here I have an above average salary (maybe even global 1%).
2. Totally meritocratic system (say efficient free market, if such thing exists), even if we deal with the above problem, lacks one important things that humans have - forgiveness. Sometimes disasters happen or people are just plain stupid. Without forgiveness or outside help, a single disaster like that can affect you for life. So I don't think "meritocracy based on productivity only" is a desirable system and I am sure I am not alone.
That is very true. Indeed we know fairness is an innate value for us and all primates [1]
Likewise "meritocracy" is a very imprecise word depending a lot on what you want to maximize and so, if not focusing on net benefit to humanity, could produce horrendous outcomes. Blindly maximizing wealth creation could be such a mistake but given how much good prosperity usually does for people, it looks like a good starting point.
But I believe the article and I are referring to fairness among employees rather than employee vs employer (which is of course also interesting). Specifically, employees comparing wages would create quite appropriate outrage between employees when some individuals receive more for less work. And this regardless of how much or little of the company's produce goes to wages (a separate issue)
You are spot-on with your point on pay for value. If you want proof of this, look no further than the leaked Sony emails doing a search for "salary" or "compensation." Reviews, metrics, etc. are used only as justification to pay people enough not to leave, even at the highest levels of the organization. The whole process is fake. The number is usually based on salary history, compensation stats from competitors, employee complaints, or having a better offer in-hand. This creates somewhat toxic environments where the least loyal employees who whine loudest, puff up their importance, job hop, and interview strategically get the best outcomes.
The closest I've seen to pay for value is in finance or sales roles, and even that is hazy. Employees in those roles have a few things going for them:
1. Measurable output. A trader or salesman can point to his numbers for the year and know what he's worth to the business. The business can see them and know what's at stake if they deflect.
2. Fewer economies of scale, meaning the individual employee provides relatively more value than the firm does. The typical Google engineer can't re-create Search from scratch, but a hedge fund trader can walk out the door with a great idea to work for a competitor. That's great leverage.
3. Competitive external employment environment. If your salesmen are woefully underpaid, a rival employer will snatch them up since they can pay them more than you while still retaining a solid margin. A lot of these jobs are in "winner take all" economies, so employers will squeeze their margins extremely tight to win talent.
4. Competitive internal culture. Don't ask, don't get. If you are managing millions of dollars or trying to close deals, you're probably the type of person to confidently ask for a raise or bonus.
So I don't think the #2 assumption (measurement of merit) is necessarily in error.
measurement of merit could imply KPI (known performance indicators), which may include things like lines-of-code counting, application usage monitoring, etc.....
and discussing implementing those things, most developers will cringe. Some may even openly revolt.
Only because there is a (probably accurate) perception that 1. performance indicators don't measure productivity accurately for developers. 2. they are game-able 3. they imply repetitive work such that as fits the metrics.
1 & 2 would obviously worsen an un-meritocratic system.
There is not a soul alive who would look at system that could get him a raise doing the work he already does and say no to it. If the measurements were accurate then you would only get objections from unproductive people. Since everyone objects including the good performers whom it would theoretically advantage then known inaccuracy is the obvious reason.
Also, if the measurements were accurate and people quit over it, then rather than being horrified you would be delighted that it was so easy to locate unproductive people.
Just as people who know a lie detector test is nonsenses will avoid it only when innocent, the reaction to KPI metrics is the opposite of what you'd expect.
"All very true, except that with a share of Google, they're all the same and you arguably know what you're buying..."
We've had many, many corporate scandals over the years: Enron, WorldCom, Tyco, etc. We know that corporations can lie. The lies are of 2 kinds:
1.) deliberate falsehoods
2.) lies of omission
We also know there are many facts that can not be known about a corporation. What is the real value of the software? What is the real value of a patent? Does the software contain a serious bug? Is the patent open to legal challenge?
Regarding the danger that Citibank got into, and the near extinction it faced during the financial crisis of 2008, Robert Rubin (who had been director and senior counselor of Citi, during the bubble years) said: "It is not easy to know how much risk is building up on the trading floor." Here you have one of the top people of the company claiming he had no idea what condition the corporation was in. Was he lying? If he was lying, then how can you trust any information you have about the corporation? If he wasn't lying, how can you trust that you know anything about a corporation, when the people who run the corporation have no idea?
So how can you ever really know what a share in a corporation is worth? It's at least as much of a mystery as the question of "How much is a computer programmer worth?"
> So how can you ever really know what a share in a corporation is worth? It's at least as much of a mystery as the question of "How much is a computer programmer worth?"
I think the point is that one share in google is worth exactly the same amount as another, and this fact is easily verifiable by the buyer and the seller.
You won't buy a share and then find out that it's actually only worth half of someone else's share, or for some reason costs you money rather than earning you dividends while everyone else is raking it in.
> one share in google is worth exactly the same amount as another
Pedantically, they're not. There are 3 public classes of Google stock, publicly traded GOOG and GOOGL, as well as Class B stock, which doesn't have a public ticker symbol.
In all of the examples you mention it was understood by people paying attention the level of risk. I knew there would be a housing bubble and crisis in 2001 because I read an article on mises.org that pointed out the two factors: (Clinton era CRA "reforms" forcing people to lend money to those who couldn't repay, because doing otherwise was "racist", an issue brought up by Barack Obama's class action lawsuit... which, by the way, turned out to be false- when corrected for income there was no racial bias in lending during the period) and Bush's policy of lending money lower then the real cost of it (a result of the dotcom bubble, and by the way, a police that is currently in action inflating the new bubble.)
I knew citibank was in trouble. I looked into Worldcom, Enron and Tyco back then as investments and didn't like their books.
While the average person may not read a companies annual reports, and the average person may not think about the consequences of forcing banks to lend money and then giving them money at a rate below the market rate, but happily buying the resulting loans (via fannie mae) at market rates... those who are paying attention can.
Well, I did slowly get back into the market after 2008. I am in my 60s so my investments are very diversified. I am going for safety, in a chaotic world, rather than trying for maximum growth.
This gives you %6 per year. That's great compared to CDs and Bonds but it's not a great return compared to stocks historically. (I think since WWII it was %10 for broader indexes?)
I'm not sure I follow the author's argument. However this is a definite fallacy:
"Cause goodness knows that the easiest way to raise one's compensation in the knowledge economy is to simply space out more while getting paid the same."
There's an opportunity cost to being stuck in a chair "pretending" to work. And my compensation does not go up if I'm "pretending" to work.
Instead, I choose to work at places that don't value my time by my presence but instead value my results.
I wasn't advising employees to pretend to work, I was advising employers to avoid this situation. That said, working less and taking less responsibility means less stress for many people and so their quality of life does rise, without the compensation falling, so it's kind of a win. Not the kind of win some of us are after and certainly not the kind of win most of us would acknowledge we're after, but a win nonetheless...
He meant all workers are concerned to some degree in demonstrating their job as invaluable to managers/employers -- even (or specially) if they don't actually believe it is, or if they don't believe to be on top of the knowledge of skill ladder.
They key point here is that workers are not identical. If you are getting paid less than your colleagues, that could be because you got a raw deal, but it could also be because you aren't as good as them.
Even within a job title, there are good reasons why pay should not be the same. For example, the job ladder represents both authority and technical ability, and these sometimes need to be decoupled. A very talented individual might have technical ability that deserves high pay, but not the industry experience to hold a position of leadership or authority. So they get hired at a lower job title, but with higher pay than their peers.
This article is very insightful. One of the interesting things about jobs, and a source of frustration and the reason I'm much more interested in being a founder than an employee-- is that so many companies are run by people who don't know what they're doing.
I've seen this from 20 year old startup "founders" who don't know their industry, to 50 year old billionaires who have lots of business experience, and thus opinions, but no wisdom about running a software company.
Even with our industry being around for 40 years or so, there are very few companies where programmers are managed by programmers who understand programming. Too much of the time its "Business" people.
So, not only are you going to be incentivized by how well you're paid vs the problems you're given, you're also going to be affected by the quality of the environment ("open plan office? sigh, I can't wait til I have been here long enough to quit.") to the amount of interference and straight up hassle (sometimes even harassment) you are getting from management.
Let me give you an example: Last year I worked in an office run by an ex-navy Seal. He cussed, all the time. His motivational technique was to threaten violence- literally. He was a bundle of barely contained psychotic violence and you were just waiting for something to set him off. I half expected he was going to come in some day and shoot up the office. I don't know what his problem was but he was not right in the head. Needless to say, he knew nothing about programming, software, or even business- his entire career had been in the military. Certainly every 5 minutes he wanted to have a meeting about something.
He thought it was funny to bring in bongo drums and a cowbell... and if we were too quiet, he would bang on them. For awhile he was showing up at 4pm and trying to get us drunk. I guess that's how they bond in the military.
I am not making this up.
That company is now on their third team-- they've had %400 turnover in employees over the past 2 years, with the average employee lasting less than 6 months. And they still haven't figured out what the problem is.
There's no way to know when getting hired that you're going into an office like that-- and while that's an extreme, over the past 30 years, most of the places I've worked have been dysfunctional to one degree or another.
So, you're negotiating your salary, you're also having to figure out how much combat pay premium you need to tack on.
And if you're in the business of hiring people, give them meaningful equity and a real vesting schedule if you want them to stay at your startup-- then show them you have the skills to turn the company into a success. You can start by producing a healthy environment for work. (and I don't mean giving me a year supply of Pabst Blue Ribbon.)
As a veteran, I’m sorry to hear about your experience. I’ve a lot of respect for the people I’ve met from the Special Operations community, some incredibly talented people, but it sounds like one found himself leading a team he shouldn’t have been leading.
I agree that programmers should be managed by programmers. You need to learn to fly jets to lead a fighter squadron and you need to be an operator to lead a SEAL platoon, it’s a mistake to think programming is so different.
The article made a great point that even when you do know how to program it’s incredibly difficult to manage other programmers. My current director, who is a programmer, is only concerned with commit counts and bug counts. He doesn’t like to interact with other people, maybe have a one-on-one once a year. Unfortunately, this mentality is driving quality into the ground as senior engineers grab easy bugs, don’t bother testing their work, and just hit the metrics with many working as little as possible. The irony being we’re a hyper growth unicorn.
Creating things and leading people are tough. Doing both is even tougher. Agreed that starting your own thing is the way to go. That’s pretty tough too though.
And drinks with coworkers is definitely prevalent in the military, but I think it is also pretty common everywhere. It’s good to relax outside the work environment, but that’s obviously tough to do with threats of violence. Again, apologies, that is entirely unprofessional behavior and tarnishes the reputation of other former military members so I’m sad to hear it.
Sure, I'm not generalizing to all military people, one of the people on the team was also ex military, and I've worked with ex military in the past. This was just a bad hiring decision.
IT's sad that you have to start your own thing-- I would have switched over to people management quite awhile ago if I could. I effectively did it here because nobody respected or listened to the official boss. So I had to lead without authority... I'm totally ready for that role.
The problem is, in my experience, companies are looking for MBAs or business people to lead engineers, not engineers. Too often anyway.
No problem with drinks, we did like to drink outside of work. Just did't like him interrupting us in our work screaming at us to start drinking. (And the "don't be a pussy drink more" attitude was not compatible with the culture.)
As a Marine grunt myself, I've seen leadership that runs the gamut - I go to bat for my team whenever I can, and work with other co-workers to get what they want in a reasonable timeline for all. I also generally advocate for higher salaries for all I choose to hire (higher than the company norm - this is due to my belief that our offers were not competitive enough prior and my desire to normalize the salary gap).
I am a lead frontend engineer & math PhD dropout who solicits criticism and graciously acknowledge faults even in meetings with higher managers if my team members bring anything up. I do so because to do otherwise is to create an environment I would hate to work in, and certainly not one where good talent can be cultivated.
On the flip side, I worked at one company that had a flat management structure, and there was an Army veteran who by loudness/force of personality forced things onto the team. It became frustrating to work with the person due to no willingness to budge without exhaustive discussions. Even with significant equity, it was not worth dealing with that.
Ultimately, the military experience enhances each person's core character traits, for better or worse.
Much of what keeps programmer salaries from going up as fast as they should is that managers know that, even if you're a genuine "10x" or even 100x engineer, you don't stay a 10x-er unless you get interesting projects, which tend to be rare in most companies. Since they control the allocation of interesting work, there's often an implied either/or: you can get interesting work and a cost-of-living bump or you can get a 20% raise.
For some examples: (1) frequent job hops can improve your salary, but they reduce your ability to stick with a long project and become good at anything; (2) if you're looking to make the case for a move into management, you do better to take on an ugly-but-necessary project where you'll delegate most of the work, than to stick with the technically interesting stuff and get a reputation of someone who only wants to work on the "fun" stuff; (3) Haskell engineers make about 40% less than Java engineers at the same level of engineering ability. (The difference in medians is only a few percent, but the median Haskell engineer is equivalent to ~95th percentile in Java.) That's because Java engineers can set up multilateral bidding wars every 2 years and get huge pay bumps; in Haskell, that's nearly impossible because it's a small community.
Personally, I tend to go for interesting work. That's because I think, in the long term, it'll play out better for me to have spent my 30s well than to have ratcheted up my salary but not really know anything.
If we want to see engineers paid what they're worth, though, we've got to get political enough that we can actually run companies (let's be honest; 98+ percent of VC-funded startups are run by Guys With Connections Who Therefore Call Shots, not engineers) and take control of the work allocation processes as well.
> That's because I think, in the long term, it'll play out better for me to have spent my 30s well than to have ratcheted up my salary but not really know anything.
Maybe, but it's far from an obvious conclusion. From a purely economic/financial perspective, it's much preferable to increase your salary as early as possible. Since in most organizations pay raises have a ceiling expressed as a percentage of comp (eg, 10%--either implicit or explicit), the base level of your salary early on in your career has a huge effect on your total lifetime earnings--similar in effect to investing a sum of money at age 35 vs 25. Sometimes having a high salary history/requirement can even give you instant credibility ("a person making $400k must know what they're doing")--some people can bluff through their entire careers that way.
That said, it's probably best to balance pure financial opportunism with "soft" concerns like actually enjoying your day to day work and growing as a person/professional.
> frequent job hops can improve your salary, but they reduce your ability to stick with a long project and become good at anything
This is a major reason why I went into platform engineering and devops. Projects are very accelerated (usually because you end up starting too late, relative to the best time to change a dev team, its culture, and its practices) and you really can learn quickly and get better at a rapid pace. It helps, too, that the state of the art is changing quickly enough that effectively nobody is an expert at everything.
> Java engineers can set up multilateral bidding wars every 2 years and get huge pay bumps
...and this is the other reason. Best of both worlds, in my view.
This is a major reason why I went into platform engineering and devops.
I can see the appeal of that. It also makes you less exposed to changes in window dressing and to political changes.
..and this is the other reason.
Sure, but it's also bad for the world that "market signals" are encouraging engineers to use bad languages for reasons having nothing to do with productivity. We know the real reason why there's so much Java in the software world: middle managers want headcount (they'd rather manage a team of 50 mediocrities than 5 elite engineers doing just enough work) and Java is such a low-productivity language that it forces teams to be big if anything is to be accomplished.
If an engineer who'd be nothing special in the Haskell community can take home $400k per year slinging Java, then what is a half-decent Haskell engineer (who, most likely, makes a lot less than $400k) really worth? $700k? $3 million?
> If an engineer who'd be nothing special in the Haskell community can take home $400k per year slinging Java, then what is a half-decent Haskell engineer (who, most likely, makes a lot less than $400k) really worth? $700k? $3 million?
The actual language isn't worth anything. Knowing the language that my business application is written in, is what counts. COBOL is the best known example - outdated, hard to use language with no features. Yet COBOL programmers are probably, on average, the best paid programmers out there, because they work on systems that the businesses care about.
The reason a 'nothing special Java dev' is worth $400k is because there are systems that make businesses crap-tons of money out there, written in Java. Not because Java is a good/bad language.
Is Haskell really that much more productive for a team? What are some large-scale projects written in it? It may make recruiting harder and take new joiners longer to get up to speed. You may not have easy access to as many libraries. A lot of "PL enthusiast" types would rather show off how clever they are than solve real problems. There are many valid concerns a manager could have that aren't headcount-related.
Sorry - I meant that in devops roles, those bidding wars exist too and I don't use Java. (Scala for web stuff, Ruby for plumbing.) Everyone needs devops, especially the people who don't know what it is. =)
> That's because Java engineers can set up multilateral bidding wars every 2 years and get huge pay bumps; in Haskell, that's nearly impossible because it's a small community.
That's why you do more than Haskell. If you are such a great programmer, you can get people from Haskell and Java land (etc) to bid on you.
(I prefer Haskell myself, and have worked with it professionally for most of my short career.)
Both of these assumptions are in error. It is the job of every business man (and likely the instinct of every human) to buy value as cheaply as possible. Thus an employer will tend offer the lowest amount possible regardless of the employees productivity. We know this happens in practice because salary negotiation is at least as critical as technical skill.
Additional evidence is that changing jobs results in much higher wage increase than staying put, if wages were connected to skill this would not happen. Likewise fiscal desperation of the employee results in accepting lower wages but if salary is merit based, why were those lower wages were offered in the first place. And of course we know that race, gender, marital status, religion and age were or still are factors in salary.
The second assumption is also thoroughly untrue. Typical human behavior is to want compensation proportional to productivity and to live in a system that allows this. The contrary has words like "dishonest", "cheating", "theft" and "unfair" associated with it and is almost universally socially deprecated. It is exactly why grinding in video games are is popular, it taps this very fundamental desire. Which desire is exactly not being met by work so players seek simulated work after hours.