That is hard because you have to convince many other people to agree. It's easier for me to just undercut other people by taking less pay. I can for example going remote and live in low living cost area.
On the side of the employees, unions have proven themselves to be good means to improve the situation for employees. Here in Germany they definitely have helped in many industries.
My comment was more about the companies though which may form cartels to drive down employee wages. Companies forming cartels is illegal, while unions are legal in many places.
I've said that they are good means, not the best means. And I guess the reason why they are paid so little is the higher profit margins of FAANG companies as well as probably the alternative in SV that you can found a startup and make much much more if you're good (and lucky).
Unions are basically legalized price fixing. What happens is that the union negotiate a "fair" price, and then all companies decide to pay no more than said "fair" price. See for example (original is in Swedish):
As I said good programmers are underpaid. They should figure out how much they are making their companies and ask for more. The market can often afford to pay more, if you just negotiate better. You can also unionize to get your employers closer to what you are worth to them rather than what they are worth to you.
In every other aspect of computers, the industry has finally embraced usability as a desirable goal, and not just for end-users.
On my first computer, you had to read a 100-page user manual and learn exactly what commands to type. In my first programming language, you had to manually allocate (and worse, deallocate) memory. With my first database, we used to have to go type VACUUM regularly. None of these is true today.
Yet even though some of the highest paid people in the world are members of unions and have agents to do their negotiating, programmers seem to have latched onto this idea that if you're not making top dollar or have your ideal working conditions, you should "just negotiate better".
Why stop there? Tell programmers they should "just program better", too.
> You can also unionize
Have you ever organized? I don't think you realize how difficult this is, especially without strong support from an existing union. There's a reason unions heap rewards on people who do it.
Existing unions also have great labor lawyers. A common response to even thinking about unionization is getting fired. (That was in the news recently because it happened 4 weeks ago here in Seattle.) Labor laws aren't what they once were, and there's usually no consequence to the company for firing organizers.
> On my first computer, you had to read a 100-page user manual and learn exactly what commands to type.
Flipside: I can still write software for my first computer without looking anything up, over 30 years after reading those 100 pages. I still know the memory layout, opcodes, assembly etc by heart and it is still the best way today to program that particular computer (which still works in my man cave) today. Yes, today it is all simpler, but the 100 page example I find a plus, not a negative. Maybe you were referring to something but my 100+ page manual was usage and at the same time programming (using was programming beyond the basics) as that was the only way to use the system.
People who make enough to have agents negotiating their salary (famous actors, professional athletes, other celebrity types) are usually looking at an order of magnitude higher compensation than even the best software developers get. At the lower end of the spectrum (lesser-known actors, musicians, etc.) agents are known for enriching themselves as much as helping their clients. They are just sort of accepted parasites on the way compensation is handled.
Depends on what the outcome is. If it makes the site 50% more performant on 25% less hardware, pretty easy to swag it. Same if the outcome makes developers on the team able to ship new functionality 20% faster with 33% fewer bugs.
Issue 1: It's very difficult to tell if your contribution got 50% improvement in performance because there were 10 other devs pushing in features and bug fixes. This is the attribution problem
Issue 2: This happens over time. It's very unlikely that your 50% improvement happens every year or month. Because, think for your self, this is compounding with large rates. It grows quickly. 1.5x improvement in 6 cycles (months or years) is 10x. This essentially is the time problem
Issue 3: even if you deliver the results you did, in a large company there's a large bureaucracy and no one person has the ability to increase your salary by that much. This is the control problem.
The problem with this argument is that programmers don’t work alone in a vacuum. How do you account for the support staff? The recruiter that hired you? The cleaning lady? The DevOps people? And so on.
It’s avtually fairly non-trivial to be able to say with even a modicum of certainty how much value a given developer brings to their company.
This is precisely my point! Thank you for getting it and explaining it.
I currently write software used by millions of people. Partly because I’m a backend engineer, I have no real idea how much more the company is making due to my direct efforts. Since they keep paying me, I’m assuming it’s a decent multiple of my carrying cost, but I have no way to measure it.
It's how markets work when wealth is distributed incredibly unevenly, and a weak social safety net makes it intimidating to work for yourself instead.
In other words, markets work that way because that's how the bosses and capitalists want it to work, and have so far been successful at thwarting attempts to use the government to change things.
The simplest and most accurate statement is that it’s an emergent result of the principles of capitalism combined with human nature and not a plot to keep us down.
I'm all for programmers getting paid more. However, by your logic, if the company is losing money, should programmers contribute from their own pockets to keep the company afloat?
Starting your own company (not self employed contractor) gives a really good perspective on what it means to be owner and employee.
How is this his logic at all? The logic is more similar to a sales person. When a company starts losing money, it doesn't try to claw back commissions from its top sales agents to keep afloat. It might lower %s / do layoffs / something else, but money paid is money gone.
The logic is that programmers tend to produce far more value than they capture -- so that gets captured elsewhere, a lot of it typically by management. Except the value can be hard to quantify when the company is old and so is the software, how much of the value is employee #3701 making fixing a bug that's making the product not work for one customer in one instance vs employees #107, #85, and #150 who in their past team's life created the original version of that system to begin with to make the new customer even consider using it? There's no point to moaning about how much you "should" get paid. Just ask for more if you feel underpaid, but be aware that because of competition and because people usually want to hear what more you'll do to justify it, you're not going to always get it.
> Privatizing profits and socializing losses refers to the practice of treating firms' earnings as the rightful property of their shareholders, while treating losses as a responsibility that society as a whole must shoulder, for example through taxpayer-funded subsidies or bailouts.
And in tough times are you taking a drastic pay cut, or jumping ship? Sounds like you want a huge share of the good and none of the bad. Also not sure why you value programming so far above all of the other activities it takes to make a successful product.
Define "making". Does the program/service sells itself? If so, then your argument may stand. Nine out of 10 times though it doesn't. There are other people involved in making the sales and they also require a piece of the pie.
The usual ratio for top flight talent in the finance industry is 10:1. A trader makes JPMorganStanleyofAmerica $5m, they get $500k compensation. That seems reasonable because there’s a direct line between talent and profit. Even so someone had to build the business, capitalise it, create the business opportunities and relationships, train and support the trader and assume all of the risk.
How much of the business risk of the enterprise is your top flight programmer assuming? Are her decisions the only ones that make any difference to the increase in profitability as a result of her work? How direct is the line between back room engineer, no matter how good and profit?
The only case where 50% or near it makes sense is for a founder owner who is also the lead talent. Maybe. Because then they are also creating the business opportunity and assuming a big chunk of the risk.
That's how markets work. You get paid what what the market will bear, not what you "should" make.