1. Senior devs aren't paid enough for the value they bring to the company (or conversely, junior devs are paid too much for that value)
2. Investing in junior devs gives a good enough ROI that it's worth overpaying them for a few years. That is, after e.g. three years, enough junior devs have stuck around that they've accumulated enough org-specific knowledge and general tech competency to justify their initially high salaries
3. Senior devs aren't actually that much more productive than junior devs, they just think they are. They also may be averse to doing productive-but-boring work that feels "beneath" them.
4. New devs are valued for more than just their direct contributions to the software project's code base. For example, they may be valued for their ability to bring fresh perspectives, or for their proximity to formal education and thus their tendency to be knowledgable of relatively cutting-edge tech. I think universities lag behind the vanguard trendsetters by at least 5 years, but there are certainly software companies that are stuck 20 or more years in the past
5. The job market for developers is irrational with respect to experience and reasoning about it is as worthwhile as reasoning about the true value of Bitcoin.
I think it's a mixture between 1 and 2, with a little bit of each other explanation too. Worth noting is that senior developers at the big tech companies (AmaGooFaceAppleSoft) get paid a lot more than senior devs at most other tech companies, but most of that compensation is in stock. Full monetary comp (not counting benefits and perks) for a fresh grad might be about $150k/year, but senior developers with >5 years experience are making closer to $250k/year or more
Because they're vastly underpaid compared to the value they produce.
>At that point it would be easier to open office overseas even for smaller shops.
Which means you're getting junior devs, at best. The entire concept of outsourcing hangs on the idea that the people being outsourced to will behave exactly the opposite of those doing the outsourcing, i.e. not really caring about money. Well they do care: when they get senior they leave and go somewhere they can earn western money.
It seems like the offshore contracting companies have a better grasp on how to maintain tech workers than the companies that hired them do. I've noticed my contracting counterparts get regular performance reviews, decent raises, and title changes actually open up doors for them.
I get my regular 2% a annual bump and any title change has no impact on my actual work.
And your second statement is not true. You simply get cheaper workforce in other countries. Even on senior levels.
The labor market isn't the greatest place to talk about market forces. Companies do everything they legally (and illegally to an extent) can to ensure that it's not an efficient market. Further, companies have all the power in the relationship: most of us must have work but a company doesn't absolutely have to hire someone. I saw a 4-person startup on this site say they'd been looking for a "rockstar" for 2 years to expand their company. They were willing and able to wait 2 years for a highly skilled person willing to take a low enough salary. Not many people can wait 2 years to get a job.
To see what a real labor market would look like, you need to address the power balance. So I think sports teams are a better representation because they have unions to address this issue. And they do capture more of the value they produce (not all of it, obviously).
>And your second statement is not true. You simply get cheaper workforce in other countries. Even on senior levels.
Oh, I had assumed you meant the typical outsourcing locations. If you mean places like Europe, yes you can get good senior people for lower rates there. But it's a percentage lower, not X times lower, you can't get a truly senior level person on e.g. 7k/yr. I'm sure there's someone somewhere that has, but they'd have done better to buy a lottery ticket with that luck.
The counterpoint is that you get what you pay for. If you wait 2 years for a rockstar to take a shit salary (and let's be real, someone numerate enough to be a rockstar won't take a bad deal) you also are pricing into your organization that it's not worth it to acquire a rockstar for anything less.
Just look at how many people are complaining here about open plan offices, agile time slots, heavyweight meetings, and inability to do what they do best.
In the UK, at least, a lot of developers reach a point where their pay is limited to what a company is willing to pay them for a full-time role. When you get to this point, you have a choice: stick to the full-time market, or go into contracting. From a money and freedom perspective, it's almost a no-brainer. A competent senior developer might make £45-50k, whereas a contractor will earn considerably more if they find consistent work. If they're not lucky enough to find back-to-back contracts they get a lot of extra free time to build their skills even further, or to diversify their offering.
Unsure if it's the mentors at those schools that are telling their students to ask for that much or the students themselves think that companies that want to hire juniors usually have that deep of a pocket.
There has never been a point in time where corporations were willing to hire on the inexperienced cart blanche to train them. It has always been a problem that nobody wants to foot the proverbial bill of Jimmys first real dev team. It is only getting worse now as more and more people enter the industry but major giants are slowing down their rampant horizontal department growth that gave a large chunk of juniors a path to classical employment in the nulls.
My father, with a modest education and a modest first job, was able to get married, raise a child and buy a house near London well before he was 30.
Property in that area is now worth hundreds of thousands and would require a six-figure salary (supposedly a lot of money!!) to be able to qualify for a mortgage to buy.
If you work for a company and produce a million in value every year and they pay you 100k for it, you are basically accepting that the company was 90% of the reason you made any value at all. For almost every single developer that is not true. On average you could probably make the exact same amount on contract / as a consultant. The fact the business is making fortunes off your work is just exploitative.
This also applies to way more industries than just software, its just most apparent in software because of how many ludicrous buckets of money big tech players are taking home each year while still paying their dev teams only 6 figures.
Your worth to a corporation is the amount of revenue you produce for their bottom line (or how much loss you offset). If you are making them way more money than they are paying you you are being taken advantage of, whether that be at 30k a year or 300k a year.
Having profit-sharing schemes when you run your own business are also helpful. Another alternative would be reserving a sizeable proportion (like 20%) of your company's shares strictly for employee ownership.
You cannot be greedy in salary negotiations. A company will not keep you on staff if you demand to be paid more than you are worth. If someone can get paid more by fighting for that raise you should be there supporting them 110% and fighting your own battles to be paid justly for your productiveness.
And you cannot feel guilty about the millions who struggle on substantially lower incomes. It is a problem way larger than an individual that only a small fraction of the working class produces trillions in revenue while the rest make close to parity with their productive yields at fractions of what the top end make. That being said, its not something to ignore, but at that scale its social and political. You have to fight the fights in the arenas they are suited for. Avoiding your own right to the fruit of your labor because your labor produces substantially more revenue than someone elses contributes to holding everyone back when competing for just wages.
Where are these $50k/yr junior positions?
I finished undergrad at a time when $60k/yr was a safe starting point for negotiation but recent searches only show me $15.50/hr at best for a junior. I acknowledge the tenuous distinction, if any, between "junior" and "entry-level" may be a factor for the disparity here.
To really compare salaries, you need to count what the employer actually pays, and factor in the various costs of living (taxes, insurance, home, food, transportation…).
You should not be in a position where you are working professionally and full time where you have to worry about having enough money each month to survive.
The cost of living is out of control and nobody wants to acknowledge that should reflect rising salaries. It is why there was so much momentum around a $15 minimum wage two years ago.
The economy has not stagnated or contracted. Markets are larger than ever. Corporations are profitable as always and are somehow finding billions to buy each other out rather than pay their employees a respectable wage.
If the momentum and progress of the 50s and 60s held to today the mean salary should be in the $150k a year range, not $50k. The average person is way too complacent to the march of inflation and growth of the economy to think that since $50k was a lot in 1978 that it should still be sufficient in 2018.
Alternatively, we could look into reducing cost of living. US is dealing with a legacy system in the form of suburban sprawl that makes housing far more expensive than it has to be because the demand by the biggest generation far outstrips supply (simply due to area constraints and ridiculous zoning policies).
A small dilapidated house built in the 1950s with lead paint and asbestos should not cost $400,000.
Unfortunately, that is politically untenable right out of the gate.
And don't forget that a lot of interns make twice that...