Curious how articles like these almost never give the most obvious advice to businesses, which is: pay developers more.
Instead, this article for instance advises employers to "increase developer productivity" and "outsource":
> If developers are your company's most constraining resource, the key question is how to increase their productivity.
"Increasing productivity" typically puts pressure on developers. This is quite surprising: developers are seen as a scarce valuable resource, and in a free market that means they should be rewarded for their rare and hard-won skillset. Instead, the universal advice is to pressure them to be more productive, outsource them, etc.
>> If developers are your company's most constraining resource, the key question is how to increase their productivity.
> "Increasing productivity" typically puts pressure on developers.
I agree frequently -- perhaps typically -- when managers put pressure on developers, they often explain their behavior as, they are trying to increase productivity. And indeed, this is probably genuine.
I'd also agree to the converse: That applying pressure in one form or another may be the most common thing that managers try to do to increase developer productivity.
Finally, I agree that applying pressure to developers is not a good way to increase their productivity.
Nonetheless, I'd respectfully disagree that attempting to increase developers' productivity is a fool's errand. Indeed, we often talk about the giant variance in individual developer productivity. If we agree that it's naive and ultimately self-defeating to pressure developers into increasing their productivity, I'd hope we could also agree that it's naive and ultimately self-defeating for managers to make no serious attempt to increase developer productivity.
There are lots of things that can be done to this end that reduce pressure on individual developers. Establishing good processes and tools, both hardware and software. Having quiet workspaces. Ensuring that managers don't suck the souls out of their reports. Establishing protocols that allow developers to work on a maker's schedule. Establishing coaching processes. Building a respectful work environment, where people aren't constantly worried about backstabbing, harassment, or being called an idiot. You get the idea.
> Nonetheless, I'd respectfully disagree that attempting to increase developers' productivity is a fool's errand.
I never claimed that increasing developer productivity is a fool's errand.
Quite the contrary: earlier in my career, my supervisor improved my productivity by carefully observing my development strategies and finding areas where I could work more efficiently.
He managed to do that because he was a very senior engineer (over 20 years of experience at the time) and knew exactly what was going on in my development and the way I approached it back then.
The guy was incredibly expensive, but thankfully I worked in a place where paying engineers like him exceedingly well was the norm, so he and others stuck around.
This isn't the norm in the industry and as you yourself observed, the typical way to "increase productivity" is get some fresh-faced MBA to apply some banal "productivity improving" tips from the article he read on the latest "CIO Today", which typically boil down to "apply pressure" and "make them work longer hours".
It often just makes work more stressful and makes the engineers feel worse, but it's the easiest and cheapest way to try to "increase productivity", so that's what's being used.
Reality is that clueless managers who could never cut it as devs themselves are rampant in the industry. Remember the Pointy-Haired Boss? That guy wasn't some outlandish joke - he and his ilk used to rule this industry!
In fact they still do in many places. Somehow engineers got cowed into accepting that their direct supervisor is someone who never did what they do, probably never could, and doesn't really understand it.
I know of no other profession like this.
So yeah, improving engineer productivity is possible. But no, most engineering managers reading this article would not do what it takes to establish an engineering culture, pay for Tribe Elders to stick around, and do all the other complex and subtle and expensive things that actually improve productivity.
In fact, why pay the Tribe Elder at all when we can just fire him and hire 3 fresh-faced graduates instead?!
They'd tell their PHBs to whip engineers harder and get them to stay in the office longer, or worse: introduce bogus metrics like "LoC written" as a performance measure (I've seen this happen THIS IS NOT A JOKE).
The article suggests to increase developer productivity by focusing on the core part of your business, outsource stuff that doesn't make you unique, and hire technical leaders. Quite different from your claim that managers just want to make developers work longer.
I for instance sometimes work from a shared space where most colleagues are not devs. It isn't apparent to them why a quiet environment with little to no interruption is necessary for my kind of work as a dev. Luckily, I can work from home so unless I have a client meeting or presentation, I don't bother going in.
It is not just about paying more (although that is one tactic). There are so many other factors though that affect hiring and attracting developers to the work you have at your company:
* Company size
* Is it green-field or mostly legacy?
* Is it new tech / new platforms or more conventional (Java and C#)?
* Will the company allow you to work remotely, maybe even on your own terms?
* Benefits, time off, usual suspects apply. Are they crappy or really good?
It's safe to say that a lot of developers who might already have some of these things in place really don't care to move or change jobs for an extra $10K, $15K, or even $20K a year more. For most developers earning over $100K as it is, an extra 10% or even 20% isn't going to change where they eat, what car they drive, where they live, their house, their clothes, or even necessarily what kind of vacation(s) they go on every year. So ... shrug.
> There are so many other factors though that affect hiring and attracting developers to the work you have at your company
Sure, and some of them count as "compensation" in the broad sense. For example, if the company is willing to give me more paid time off, then that's equivalent to higher pay.
Some of the other factors you mentioned (such as whether it's "green-field") aren't compensation and can't be adjusted to attract candidates.
Pay is relatively easy to adjust, so it's an easy and fairly general answer to the complex problem of recruiting and retaining engineers.
> For most developers earning over $100K as it is, an extra 10% or even 20% isn't going to change where they eat, what car they drive, where they live, their house, their clothes, or even necessarily what kind of vacation(s) they go on every year.
I've seen developers change their choice of an offer based on $15-20k. It may not seem like a lot to you, but it's important for many people, and I totally respect that.
My comment more broadly was not just about pay, but about the attitude that "developer shortage" is going to be solved by sticks (pressuring developers to be more productive, aggressive outsourcing), rather than carrots (better pay, benefits, work environment, etc.)
The industry's fondness of trying to beat down engineer comp with sticks for decades (how many times was the outsourcing boogeyman paraded?) is the reason for the current predicament.
People looked at all the "outsource all the things!!1" articles on "CIO Today" and decided programming ain't for them 10 years ago. That's why we lack senior engineers now.
Solution for the problem? According to the article, it's more sticks!
I would leave my job in a second for 5k more a year. Admittedly I currently make less than 100k but that 5k more is 5k more money towards securing my family financially.
Yeah, folks tend to forget that not all engineers are in their early 20s, making $150k and content to live with roommates for the next decade (and possibly the rest of their lives).
Speaking of salaries being before tax, in Australia for example you'd only see 63 cents in the dollar out of that 5k (assuming a salary of $80k a year, probably not unreasonable for a lot of Australian developers). Might you also consider extra time off? I've done this before, and at one place ended up negotiating 1 day off every second week instead of a pay rise; I still, more or less, got just as much work done in 9 days as 10, and neither I nor the company had to fork over more money to the government. Not to mention, a long weekend every second weekend was great for relaxation and opened up possibilities for my wife and I to travel slightly further afield than we could for a standard length weekend.
Paying more is the one real way to keep good software devs. Everything else is secondary. The real problem is every companay big or small is under risk of getting vanished. So software devs are looking the jobs like a sprint and not a marathon. Don't get this wrong, improving the skills and learning new languages are constantly practised by good devs but money is the real motive to stay.
Well, for a developer earning over 100K in San Francisco, an additional $20K won't make a difference. Those devs will still be able to eat as much $12 avocado toast as they want, and they still won't have any hope of buying a house and raising a family. Offering over $100k in a different housing market would make a big difference, though.
The downside to paying more is that bad programmers don't leave because they will never find a better-paying job. People will stay even if they don't feel comfortable with either their job or their colleagues. You have to fire them for vague reasons. That's a kind of stress that not every manager can bear so you have to prepare your management layer accordingly.
This stereotyping is just exhausting. If in my career I have both - years-long stay in a boring corporation and multiple job-hopping periods couple of months each, am I double incompetent, double competent, or these nullify each other?
This comment is irrelevant to the US. You can fire people for any reason, or no reason at all. Incompetent programmers can and do get fired for performance reasons all the time.
It's simply not an issue, and in reality if you're a "bad programmer" you'd have trouble getting hired, let alone staying anywhere for more than a couple of months.
Bad programmers have no problem getting hired because the broken hiring process in our industry rewards those who know how to do the right song and dance (data structure and algs) independent of how good they actually are. I know, have worked with, and have laid off devs like this.
Never worked at a big company in the US I'm guessing. Because they are havens for bad programmers, who inevitably advance to some position of authority and can crush the spirit and productivity of whole departments. Now with 'agile' and code review hurdle on checkin etc, it can actually be impossible to improve the situation. Even Silicon Valley has become infected with this.
I'm advocating against self-appointed police setting themselves up as arbiters of style and technique, who delay projects by weeks and multiply the effort required to pass their arbitrary notions of how a pointer should be compared to null or whatever. Its insulting, pointless and aggravating, especially when you spend Labor Day weekend cranking to get a feature ready for a demo, but can't check it in Monday because so-and-so doesn't like some style issue.
Sounds like valid criticism of a particular review process or reviewer, not reviews as a general gate to pushing code. I’ve worked at places without mandatory code review and the code in those places is consistently awful.
I've never experienced anything else along those lines, so your mileage may vary of course. But once a company falls into this trap, its not something the new guy can fix.
This is the US. You can fire them for no reason. The only reason to do it for "vague reasons" instead is to try and avoid the unemployment insurance hit.
To be honest, compensation is already _extremely_ high in the U.S. relative to the rest of the world (at least 2x, often 3 to 10x). That is a huge multiple for the simple privilege of being a local developer - it is not due to U.S. developers being better.
Said otherwise, developers in China and Russia and Central Europe - often who speak very good English - are now increasingly competing with U.S. developers as the world embraces more remote work. I suspect that before salaries increase more in the U.S., we'll see it first increase in these developer-rich emerging markets.
> To be honest, compensation is already _extremely_ high in the U.S. relative to the rest of the world
Check out compensation for medical doctors, dentists, nurses, attorneys, sales people, and an endless list of others in the US compared to Russia, China, and Central Europe.
Hint: the median pay for any of these is often 5x or more here.
Compare cost of living too, while you're at it.
Practically any profession in the US makes more money than anywhere else. Certainly in big cities like SF and NYC.
> Said otherwise, developers in China and Russia and Central Europe - often who speak very good English - are now increasingly competing with U.S. developers as the world embraces more remote work.
There were articles about outsourcing 10 years ago too. In fact, the perceived rush to "outsource all the things!" that many companies embraced (to their detriment) is why a lot of good people saw software engineering as a hopeless field consigning them to compete with foreigners for pennies.
That's why we have the current shortage of senior engineers: sensible folks didn't want to have to race to the bottom on comp against foreigners living in locations where $50k buys you a palace.
> I suspect that before salaries increase more in the U.S., we'll see it first increase in these developer-rich emerging markets.
They already are. Check out what's going on in Bangalore right now.
The tech industry has been scaring developers into submission by waving the outsourcing stick for decades. Then they discovered good talent is rare everywhere. Now good engineers in Bangalore are making salaries that are in the same ballpark as American salaries.
It's consistent with the wage trends in the economy at large: if you're at the director level you can expect stratospheric wage increases year over year.
Everyone else, well real wages have been flat or declining, with some recent shorter term gains. Real income has increased by a whopping 5.1% in 12 years. [1] If you shift the timeframe back to 1978, real wages are unchanged. [2]
Supply and demand has become fundamentally broken in the labor market. It doesn't work anymore.
One the one hand, yes. Supply and demand being what they are, we should expect developer salaries to go up. And in some places they have. A lot. Yay, because I write software and this is good for me.
But on the other hand, no. Paying more just ensures that the scarce and valuable resource is allocated to the companies that can make the most profits from it. That's good, as far as it goes, because that loosely corresponds to providing the most value for society. But it doesn't make more engineers.
Maybe it will in the long run. Big salaries will cause lots of kids who are in high school now to choose to study computer science in a few years and 20-25 years after that we'll have a
lot more experienced software developers than we do today. Great, I hope that happens.
In the meantime, there are not enough developers around to write all the software that we need. There is a lot of stuff that just doesn't get done because the software isn't there. Projects cancelled, startups failed, services not performed. Sometimes, you can't hire the developers you need regardless of what you're willing to pay. That's what the article is talking about.
> And in some places they have. A lot. Yay, because I write software and this is good for me.
In those places, wages often rose to compensate for commensurate rises in cost of living.
Where did wages rise the most? SF Bay. How much did they rise? 30-50%. How much did cost of living, especially rent, rise during that time? Roughly the same.
Can developers in SF Bay afford to buy a house?
No.
Yet somehow they are content with these modest raises...
> Paying more just ensures that the scarce and valuable resource is allocated to the companies that can make the most profits from it.
Even if that's the only advantage, speaking as engineers, that is a huge advantage. It means engineers are paid more. Even if all else remains equal, that's a good outcome for engineers.
> But it doesn't make more engineers.
This was already covered below.
Better pay convinces more and better people to enter the field, encourages existing senior developers (the exact sort that are most needed) to stick around and keep doing meaningful work, and reduces turnover, so years of engineering knowledge and training aren't wasted because the only way to get a decent raise is to job hop.
These are just 3 random examples of how better pay will "make more engineers".
I still don't get how getting paid more is bad for engineers or the field as a whole. In every other case, rise in demand/supply ratio will increase price. Why shouldn't it happen for engineers?
Even if that was the only effect, it would be good. But obviously, there are many more important positive effects to raising pay. In fact, a big reason for the current "shortage" is that pay was kept artificially low for a long time, now you suggest we keep doing that... why?
Oh, no. I don't suggest depressing engineering salaries. Companies that want to hire engineers should definitely offer more. Engineers should ask for more and move to companies that will give it to them. Efficient allocation and all that.
But I think it's important to recognized that the limitation is not just capital. I think we should absolutely be trying to improve productivity as well. You're right that simply pressuring engineers is useless at best. But that doesn't mean that productivity improvements are impossible.
> Curious how articles like these almost never give the most obvious advice to businesses, which is: pay developers more.
Isn't that like saying, Hey there's an oil crisis, what are you taking about, just pay more for oil.
The SW development crisis is that companies have to pay more for high-octane developers and they don't want to, or can not afford to pay ludicrous prices.
> Isn't that like saying, Hey there's an oil crisis, what are you taking about, just pay more for oil.
Which is exactly what happens during an oil crisis... :)
Oil prices rise, and people who don't need oil so much stop purchasing it.
> The SW development crisis is that companies have to pay more for high-octane developers and they don't want to, or can not afford to pay ludicrous prices.
Right, with one small difference:
In the US, employers get to whine to the government about this eternal "crisis", then the government issues hundreds of thousands more work visas (in addition to the "minimal quota" of hundreds of thousands that is already issued every year like clockworks), and then the employers are happy: they get to fire older, well-paid employees, and hire fresh H1B holders who are tethered to their jobs and can be deported for poor performance, much like slaves.
They keep wages down this way, until next year, when they whine some more about how Americans don't want to become engineers. One wonders why.
> Which is exactly what happens during an oil crisis
Paying more happens; so does seeking to exploit currently-underutilized supplies (equivalent to outsourcing) or find ways to improve efficiency of systems that depend on oil (equivalent of increasing developer productivity), both a responses to the first effect of the supply constraint, high market price.
That would work for a single company, but not necessarily the market as a whole... paying developers more wont suddenly add a bunch of skilled developers into the market.
There's a whole bunch of smart people right now who won't go into tech because they can make more elsewhere.
Another example is senior engineers who retire because their investment portfolio is large enough, and they don't feel like working hard for another year just to make another $150k. If it was $400k, they might stay. These are the engineers who are the most scarce and at the greatest demand right now.
Another example is turnover. Engineers currently have to job hop every couple of years to get a decent raise. That leads to more waste of engineer time and effort than any single management improvement that can possibly be implemented.
These are just 3 examples off the top of my head.
In every other field, it is obvious that more pay == more and better candidates. Yet somehow engineers are the single exception?
You make a great point. It’s often difficult to parse out whether a demand spike is confined to one supplier or the overall market.
Personally, I started programming in HS (class of ‘02). I could have gone the programmer route after HS, after college, and even after grad. I’ve had opportunities during my professional life as well. The one serious negative doesn’t seem to go away - programmers are treated by companies in ways my health can’t tolerate. I need every day to start and end roughly around the same time and with good healthcare.
I have 18 years of experience in software development and engineering. Due to my concern that I wouldn't make it doing anything else, I've stayed stuck in the technical path.
Let me just say that after at least 10 years of routine 10-12 hour days and occasional weekend work, I think maybe you made a better decision than I did.
I make less than industry rates working for a large corporation and you'd be shocked by how much pressure and technical responsibility I have as one person. And no matter what I do to try to get help, the burden stays on me because it's perceived that "I can handle it".
> I make less than industry rates working for a large corporation and you'd be shocked by how much pressure and technical responsibility I have as one person. And no matter what I do to try to get help, the burden stays on me because it's perceived that "I can handle it".
Why don't you find another job then? If you're making below market wages, you should be able to find another employer to pay you about the same for a much more relaxed work environment.
I suffer from imposter syndrome, for one. Even with the experience I have, I never feel good enough. Also, I frequently get stuck working hard to the point of burn out at a place and then don't have the energy to find the next thing. Also, come out exhausted from the current gig, not motivated for the next one.
I think partially, the market where I am, employers are quite greedy and it can be difficult to find places that have good work/environments and the higher pay. It's a bit of a tradeoff, choose one or the other. It's been getting better as more cutting edge companies have moved to the area over the years, but still, the good stuff happens elsewhere.
I tried to get career counseling before to get some help, however, they recommended I start my own business rather than continue to look for a traditional job.
I know that would be a hard road (been through several startups already). I'm not afraid of the hard work, I just have some familial limitations that make it infeasible at the moment (trying to adopt).
That said, your point is well taken, and my friends and colleagues often recommend the same. I'm not sure if I'm an optimist and keep hoping the place I'm at will recognize and reward my contribution (unlikely), or I'm some kind of work sado-masochist. Not sure!
Employers will take everything you're willing to give. You have to set boundaries. I used to work twice as hard over a weekend to meet a deadline. I then worked with people who, confidently, stated "Sorry, If you want to meet that deadline we need more resources." They would also simply not work weekends. If work didn't get done, it didn't get done.
This is obviously where imposter syndrome comes into play. If you're confident in your ability, you aren't scared you will be fired or let go for standing up for yourself.
Ironically, I've started to worry less about being let go and that does embolden me to actually take some risks and say no. However, thus far, I earned the reputation of just not dropping the ball.
It was recommended to me before, to just let things fall as they may. That part is super difficult for me. I don't like to let things fail.
That said, your advice is an area I need to continue to work on for sure. Thank you for the suggestions.
You either set boundaries for yourself, and manage your managers expectations and resources or they will pick your expectations and resources. You have to pick one, and I don't blame the business for taking him for a ride.
It's true, the business is aware of what they can get out of me. That makes it difficult to "take back" now. I don't entirely blame them either, although it's frustrating.
You're frustrated because you're the sole reason why it's happening. Set boundaries and you should be fine. Walk out of the job on time, and get a new phone number and a phone with a dual sim.
I have certainly tried, with quite a lot of effort, to get more resources. The company is going through a lot of change right now, so the request is a bit lost in the chaos. It's partially due to the change that workloads are so imbalanced- hoping for things to change. Also, everyone here is right too, I have been trying to change myself for a long time now. Getting better but it has been a difficult process.
Maybe creating a log of the work you do would give you some measurable objective points for your own self worth? I did that at my last place to establish their PIP was pretextual. It kept me around long enough to find the next place. But it also built my self confidence - by having an undeniable, immutable recount of my work. I’d keep a running log each shift and email it to myself at the end. Everything time stamped, dated, summarized, and relevant documents included.
You're right. I was good at that for a while, but eventually I started juggling so many different things that it became too time consuming to write it down. I also tried using timetracking, like ManicTime, and that was helpful for passive tracking.
Let me turn this around for you: if you want to take care of the kid, you need to take care of yourself. And that includes your finances and your mindset, both of which will be imposed on the child. Perpetuate the cycle or break free. I'm not saying start a business. I'm saying get to the other side of average compensation.
I can't disagree with you here. I'm definitely trying to change that mindset to get to the other side of average pay. I'm actually surprised by how many at my company are in the same boat.
Thanks for the advice. Certainly, the kid will come first over work. The rest needs to support that!
This describes me. I've essentially maxed out my compensation on the tech ladder unless I go to work at FAANG, in which case I might see a one-time bump of between 10% and 33%, at which point I'll essentially plateau again. I chose management last year instead. I got an immediate 10% boost in pay from the same-level position on the tech ladder, bumped into the highest bonus pool available for people not in senior leadership, and significantly more influence in the work my team takes up and with senior leadership. And although it's a bit harder to move up from here, there is at least a path up in terms of both challenge and compensation.
> go to work at FAANG ... at which point I'll essentially plateau again
Out of curiosity, is this based on first- or second-hand experience with the compensation structures at those companies, or is it an assumption based on how other companies work?
Mostly the last, as my second hand knowledge is dated or casual (e.g. from acquaintances at the local library, parents clubs and that kind of thing). I could be completely wrong!
Circumstances differ, but high performing senior developers at FAANG get vastly more than a 30% bump in total compensation over similar roles at most non-public companies and over public companies whose main area of expertise isn’t software.
It’s hard to say with any precision, but easily $300k total annual compensation for a high performer.
I was doing rocket science but switched to software engineering because I want to someday afford a decent house in the Bay Area. So yes, higher compensation definitely increases the supply of software engineers. Different people have different price points at which they would switch, but the potential supply is definitely there. Companies need to do a much better job of not screening out applicants with non traditional resumes though - I had to go through triplebyte to get my foot in the door.
> Companies need to do a much better job of not screening out applicants with non traditional resumes though - I had to go through triplebyte to get my foot in the door.
Right. Imagine any other field where employers regularly complain about "severe talent shortage", yet a qualified candidate has to go through a highly specialized 3rd-party recruiter just to get their resume considered rather than tossed out reflexively.
Puts the whole "tech talent shortage" myth in perspective.
There is no "tech talent shortage".
There are a bunch of spoiled employers who are short on "22-26 year old programmers who got the exact education and skillset we are looking for and are willing to work for the wages we offer, which incidentally will never afford them a house anywhere within 50 miles of our offices (but they won't care, because by then they'll be back in their home country)".
> In every other field, it is obvious that more pay == more and better candidates.
I saw this idiocy in the injection molding industry, as well.
Companies were bitching about their better line workers getting poached. Okay, fair enough. Which companies in your field are poaching them?
Foxconn and Amazon.
Okay, when you are losing your line workers to possibly two of the WORST EMPLOYERS IN THE WORLD, you might want to think about the fact that you are doing something wrong.
> There's a whole bunch of smart people right now who won't go into tech because they can make more elsewhere.
Actually no! Software engineering is hard and takes years to build the skills of a senior engineer. For the vast majority, this is incredibly frustrating and thus they seek other professions despite having the aptitude for software
Other fields also pay well and can draw top talent away from software engineering. Take a look at "US News Best Jobs" and drill down by salary in top paying regions for each job. The information is a roundup of BLS data.
The top paying market for software developers (the #1 job, apparently) is San Jose, at $133k a year median pay.
Here's the top pay/region for the next few jobs:
#2 Dentist, Peabody MA, $285k/year
#3 Physician Asst, Yuba City, $149k/yr (and $138k a year in Santa Rosa CA)
#4 Nurse Practitioner, $180k/Yr in Altoona PA ($158k/yr in San Francisco, CA).
A bit further down the list, a registered nurse (#18) earns a median of $138k/yr in San Francisco, CA. Lawyers (#33) make a median of $193k/yr in San Jose (top market)
I think national pay for software developers may be skewed by how many of them work in the valley. When you compare them to what other well educated and skilled professionals earn in those markets, you'll see that their compensation is ok, but nothing notable. There are lots and lots and lots of jobs that pay better, and may offer more fulfilling work.
My point isn't that software developers deserve to make more money. Maybe the deserve to be paid less because their work matters less, but that's hardly a selling point. It's never an apples-to-apples comparison.
But overall, I'd say the market is working just fine. There's no "shortage" of software developers, any more than there's a shortage of any other skilled professional in a high cost area. IN fact, there are probably considerably more software developers at the current price point, because of 1) government and industry PR programs designed to convince young people that they are desperately needed in software, and 2) work visa programs that put Silicon Valley companies in control of who is allowed to work in the US and the conditions under which they are allowed to remain.
In fact, I'd say as long as non-market mechanisms (such as visa programs that allow Facebook to decide that immigrants should be engineers but not florists) are used to suppress wages, we should expect an almost permanent "shortage", as people who have the freedom to be florists (or anything else they might wish to pursue as free people) go into fields where wages and working conditions don't reflect the negotiation power of people who can be deported if they lose their jobs.
So where does the idea that developers are highly paid come from? I think it's because very young people can get a six figure job right out of school, or even without a degree. That's pretty rare.
But then it turns out that compensation doesn't scale with experience as quickly as in other fields, and that a lot of people have to switch to management to progress in their careers, so the overall median across all experience levels ends up seeming low.
In general, software development seems like a really good field to get into, but a mediocre one to be in for the long haul.
This same phenomenon underlies our perennial debate about interviewing: it's actually great that you can get an amazing job just by doing some artificial programming puzzles on a whiteboard, but it sucks that after ten years building expertise, with a long string of successful projects under your belt, you have to do artificial programming puzzles on a whiteboard to get a job.
The other fields you mention have the opposite setup. It's quite hard to become a nurse practitioner, but once you're certified, employers pay well and don't constantly question your basic level of competence.
> I think it's because very young people can get a six figure job right out of school, or even without a degree.
DING DING DING!
It was a clever scheme, and it even worked for a while.
"We need a lot of people to study CS, but we don't really want to pay them so much and cut into our fat bonuses. Whatever shall we do?! Oh, let's offer eye-popping entry-level salaries, that will get them to choose the CS major and learn to program. Once they do, they're committed, so we can just freeze their wages indefinitely. What are they going to do, go to medical school at 35?!"
> it sucks that after ten years building expertise, with a long string of successful projects under your belt, you have to do artificial programming puzzles on a whiteboard to get a job.
That's an artifact of the unfortunate fact that references are worse than useless in the US.
There's no real way for a new employer to objectively tell how well you performed on a particular project in the past.
Casual references don't work and are typically misleading.
I'll give you an example.
One startup I worked with had two very different developers.
One guy was totally incompetent. Multiple years of "senior" experience on his resume, but couldn't complete a single feature.
However, he was great at socializing, so when he got kicked out, several developers were happy to get on the phone and tell prospective employers how great he was.
Another guy was quiet, socially awkward, and introverted. However, he was among the top 2-3 programmers on the team. Completed some of the most critical parts of the project.
I guarantee that he had a lot more difficulty getting any references. In fact, I guarantee the first guy had a much easier time getting his next job.
Most employers who just speak to both and check references would get the highly inaccurate picture that the first guy was far more crucial and competent than the 2nd.
That's true. Is the cost of firing really that high, though? And how good are the tech tests at determining that a software developer will be good at working on a product? It seems to me that you could be great at printing all paths in a linked list of numbers that sum to to sum of a different path in a binary tree, but really not all that good at working on a product.
I know that many companies are so concerned about false positives (hire a bad developer) that they are willing to tolerate a high incidence of false negatives (fail to hire a good developer). That's an odd position for an industry claiming a severe shortage of talent, but there's also a strong case that if you allow too high a rate of false negatives, you can make it so hard to hire a good developer that you end up hiring a bad one. In short, it's more likely that one bad developer will slip through the cracks than a good developer will make it through, if the good developers are a small percentage of the hiring pool and the false negative rate is very high.
It would be helpful to see more data on this. I consider the CS degree at a reputable university (doesn't have to be elite, just a proper curriculum) to be very challenging compared to many other majors. And I do know plenty of programmers who got MS degrees in engineering, math, or other fields. But you are right, it is possible to bypass the entire thing.
I suppose getting a grad degree and becoming a software developer is giving yourself the worst of both worlds. As you point out, it's tough to get an MS in Nursing to become a NP, but once you're certified, you don't have to prove your basic competence by re-taking your organic chemistry midterm at the whiteboard 15 years into your career every time you interview.
But if you major in CS and get an MS degree from a reputable university... yeah, you're still doing take-home and whiteboard exams when you apply for a new job.
I would point out while programming has low formal barriers to entry, it actually isn't a trivially easy field to enter. Yes, you can say you're a programmer if you read the first half of a book on "PHP and MySQL" (or if you don't and say you did). But almost every interview I've been on has asked me to do data structures and algorithms questions at the whiteboard. It isn't just fizz buzz. It's "fine all matching subtrees in a binary tree", or "find all subsets within a set of integers that sum to a different subset of integers within the set". Others have asked me to do elaborate take-home tests, though I now refuse to do that (this has cost me some good opportunities, but I'm just not willing to do it anymore).
So software development does have a set of entry conditions - it's just that unlike a proper profession, they are applied informally, erratically, inconsistently, largely in secret, and administered and graded by people with widely varying levels of competence, and you have to go through them every time you apply.
Oh, my apologies, I understand the question you were asking. You weren't asking for my opinion on how this should work, you were specifically asking about what kind of data is needed.
Ok, got it. I'm interested in how viable a career path it is to try to go into software development without any degree, without a CS or related degree, or without a MS or PhD. The reason is that I've been on interviews for "data science-ish" positions (this was before it was a term), and I was whiteboard quizzed on:
Tree operations
Markov chains
Formulating linear programs
Set permutations (you know, all permutations of a string, but hidden in a different question)
Database normalization and queries.
I have an MS in industrial engineering, so I've studied this stuff, but I definitely have to hit the books and re-study for my midterms every time I go into an interview like this. I could look it up on the job, but to have it sharp and ready enough for a whiteboard quiz, I definitely would need to study.
So I guess I'd be interested in knowing the salary bands, job title, and degree. But here's the thing, that only tells you who got the job. To really analyze this, you'd need to know the percentage of people who apply and get interviews. I definitely think that having an MS from a top program does increase my odds getting some of these interviews. The difference is that it doesn't save me from having to re-take the exam every time I interview, unlike many other professions that have a more formal process for taking entry exams and keeping credentials up to date.
I don't have an answer to that question that I'm completely satisfied with, but I can give you my thoughts on it.
I'm extremely wary of formal ABA or AMA style licensure. It's not that I oppose it in theory, but requiring (for example) three years of formal law school (about 50k a year at UC Irvine, less at some publics, more at some privates) isn't something I'd want to see happen to software development. I also worry about who would control licensing. I've butted heads with the "no code in JSP" crowd that wanted to replace everything with tag libraries (until Rails, with ruby code in the page, more or less swept them aside), and I watched the test-driven development crowd start suggesting that people who even questioned the value of the methodology should be unemployable, likening this to a physician questioning whether washing hands is important. I imagine what software development would be like if these people got control over licensing, and I don't like it. I also really like the fact that a math major or similar can become a programmer, that you aren't compelled to do a very specific degree or path.
There is the actuarial approach - a series of exams that don't require a specific degree, but you will need to acquire substantial math (calculus, differential equations, linear algebra, vector calc, numerical analysis, and more, followed by more industry specific topics) to pass. I like this because you can major in whatever you like, or even self study. Senior actuaries with a decade aren't quizzed at the whiteboard on whether they can do a complex integration by parts, partly because it probably doesn't matter, and partly because they have already passed a proper exam. This one doesn't scare me the way the "law school" style licensing does.
Other ideas floated are unions along the style of Hollywood unions, which provide some worker protection but allow the flexibility for high variance in talent and compensation.
All said, though I'm not sure any of this is necessary. What I actually think we need to do is just let the market work. I think we need to accept (well, powerful Silicon Valley companies and investors need to accept) that if smart and talented people don't want to become software developers in SF/SV, that's the market's answer. People respond to a wide range of variables - working conditions, quality of work, nature of work, career stability, job flexibility, compensation, the risk of age discrimination, barriers to entry, and so forth. It appears that many of the people who are able to become software developers are choosing to do something else. That's not just ok, it's great. It's human freedom.
What we have, though, is a government that, at the behest of these powerful tech companies and investors, created a shadow immigration system run by and for the interests of these corporations. We actually set up a system that creates a large pool of workers who aren't free to engage in that decision making process I described above. And I want to be clear here as I have been in the past - I am perfectly happy to see talented people move to the US! I'm not happy to see Facebook empowered to decide who is - and isn't - allowed to come here. That prevents the market from working, and it's why we continue to have "shortages" that, well, aren't.
I enjoy talking about this on HN, but I'm actually at the point where I think there is no possibility of any of the above happening. Software Developers will not organize. Congress will continue to hand Silicon Valley control over the immigration system. Immigrants who come here under tech work visas will not have the right to become florists, dental hygienists, or drywall installers, they will have to do the job Facebook says the have to do as a condition of living and working in the US. The green card system is designed to take forever, so that by the time these immigrants have freedom, many career options are closed or come at a much higher cost. That's the intent of the system, it really is. Billionaires like it, which is why it will not change.
This is exactly it. New grad salary for developers is great, and within the first 5-10 years you can expect growth. But after that you pretty much plateau to the point where switching jobs doesn’t even get you an increase. At that point you have to get out of development for further career growth.
> When you compare them to what other well educated and skilled professionals earn in those markets, you'll see that their compensation is ok, but nothing notable. There are lots and lots and lots of jobs that pay better, and may offer more fulfilling work.
Really important comment. People tend to overlook how engineers aren't actually paid that well compared to many other professions.
Especially considering the amount of learning and training and skill-building it takes to earn anywhere near what that Nurse Practitioner in Altoona PA makes.
Also note that there are plenty of engineers who make low wages in SFBay. Sure, they make 6 figures, which sounds high to a lot of people working low-paying jobs outside the valley. These people aren't aware that $100k in SF means you probably have roommates.
I guess I might be a good example. I wrote software for over a decade and after that time, my salary basically plateaued. Raises stopped. Changing jobs didn’t help anymore. Used to be able to get a 20-40% bump just taking another job—that ends at around the 10 year mark. So I did an MBA and left software development :(
If there was an upward career trajectory for individual contributor developers, I’d go back in a heartbeat, but apart from a very few selective companies there is not. Change this, and we senior folks will return to the industry in droves.
According to Prof. Philip Greenspun, his smartest female CS graduates went into health sciences because it paid more and had other improved lifestyle benefits. So check out his blog if you want to read more.
It should be noted that the article doesn’t really talk about programming as a career. It’s mostly about how Science is a terrible career from the perspective of money or security and the professions are way better.
We are talking about the lack of senior engineers right now. That means we need to look at the market 10 years ago to see why there aren't enough senior engineers right now.
While the entry-level wages for engineers straight out of college were already high 10 years ago, wages after that tended to stagnate.
Typical course for a talented engineer was to start somewhere near $100k, which is great comp for a fresh graduate. However, after 6-7 years that talented engineer would be somewhere around $150k or so, while typically having a lot more responsibility, stress and workload (compared to a fresh graduate, who earns $50k less to basically learn the ropes).
After that, you completely stagnate. Very few engineers were making much above $150k, and practically nobody was making over $200k.
Meanwhile, your peers who went to medicine, finance, or business would be seeing a steady rise that routinely soared far above $200k, especially if they were successful.
Meanwhile, an engineer could launch multiple successful products and not make much more than $150-200k.
The situation is changing a bit nowadays, but the shortage of senior engineers in particular dates back to these times.
There's no guarantee that the current positive trend will continue. The entire industry seems obsessed with the question of how to pay engineers less. Even this specific article about engineer shortage focuses on whipping them to be "more productive" and getting rid of engineering positions through "outsourcing", that old reliable threat that's been used to keep engineer wages down for almost two decades now.
If we go back even further than 10 years, engineering was that low, dirty profession reserved for unwashed foreigners with thick accents and other smelly nerds. Companies were grabbing a fresh batch of them every year for $70-80k and they were expected to be thankful for getting that much, and were lucky if their pay peaked at $150k, while mid-level managers who couldn't write a line of code got much more than that.
If you were among the lucky ones to earn $150k you were definitely some sort of semi-manager yourself, "team lead" / "technical lead" etc who was expected to work 16 hour days when it was necessary (often) and take on a ton of stress and responsibility.
> Meanwhile, your peers who went to medicine, finance, or business would be seeing a steady rise that routinely soared far above $200k, especially if they were successful.
I've always considered my peers to be physical engineers (e.g. civil, mechanical, electrical), not finance or medicine people. I get paid a good amount more than my mechanical and electrical engineering friends, for a job that (for me) is easier and also took me 1 less year at university so I have a lower student loan and an extra year of earnings and experience (3 year B.Sc, vs 4 year B.Eng).
In terms of absolute numbers, I'd guess that there are actually a lot less people who got a B.Com in finance or business who are earning more than what software engineers earn. Most people who get a degree in finance don't end up working in finance, at least that's the case in Australia and New Zealand from the people I know.
> I've always considered my peers to be physical engineers (e.g. civil, mechanical, electrical), not finance or medicine people.
The key question is what profession has a name that rings similar, but what are your other options as a fairly clever person with a quantitative streak.
In the US, finance is an obvious example.
> Most people who get a degree in finance don't end up working in finance, at least that's the case in Australia and New Zealand from the people I know.
I'm not an expert on OZ/NZ, but guessing that's because the financial sector in the US is several orders of magnitude larger.
Good points. I think part of the problem is that software development is still seen as cost-center not as a profit center. Developers are the working men an women of today who "do things" where as managers are are the people who take the credit for benefits and revenue from software.
The work that developers do is hidden inside the code and outside world does not see it. No matter how great code you write your manager does not understand it and external world does not see it. Therefore you get less of the profits from the thing you build, people who can say they "managed" to make it come about take the credit and the profits.
I think the whole idea behind the article is that because developers are getting more expensive the managers and sales-guys can no longer claim so much of the benefits from the software for themselves. Therefore it is a crisis for them. Developers are a resource for them just like oil is for the transportation industry.
> Developers are the working men an women of today who "do things" where as managers are are the people who take the credit for benefits and revenue from software.
A key difference is that managers of the original "working men" understood every aspect of their work. The work was not intellectually challenging. Typically the manager was promoted for being one of the best "working men".
The tech industry got into the habit of hiring managers with some degree (such as an MBA) but zero technical aptitude. An entire generation of engineers was managed by the infamous Pointy Haired Boss who didn't have a clue what his subordinates were doing or producing.
> I think the whole idea behind the article is that because developers are getting more expensive the managers and sales-guys can no longer claim so much of the benefits from the software for themselves.
Not necessarily. Look at them outside of the United States. Software engineers typically make anywhere between 20-60k a year depending on location (east Asia being the worst).
> Not necessarily. Look at them outside of the United States. Software engineers typically make anywhere between 20-60k a year depending on location (east Asia being the worst).
But almost everything is highly paid in the US as compared to east Asia. Even minimum wage is higher in the US as compared to east Asia. To me, it looks like the median is higher in the US and so is the cost of living.
""In every other field, it is obvious that more pay == more and better candidates""
I don't see evidence to bank this claim.
I've spent 10yr+ doing hiring, for devs and other roles. Candidate quality and wage offered rarely coincide.
Currently I've got four high quality employee who are all under market wage wise.
But! My (small) company is fun! There is upward mobility (eg CSRs becoming SDET), new skills opportunity (eg: Senior devs doing customer interviews/site-visits). Folks can see their work being used and participate directly in the feedback loop.
IMO a "rewarding opportunity" attracts better candidates, money offered just gets me more candidates.
It's not passion crap, these are older players (mid-30s+) who know better.
At some point folks can make the choice to not only chase money. Here we work 40h, some employees are 90%+ remote, come to the office if you want, actually USE the vacation they earn, 100% health, equity
Balance is the real offering. You think I'm selling passion-bullshit, I'm not. I'm selling: ill pay you less but treat you better. Many folks are happy to just not be a cog in a huge machine.
> Curious how articles like these almost never give the most obvious advice to businesses, which is: pay developers more.
“access to” includes, and really is largely a way of saying, “cost of”. Paying more isn't the solution to their complaint, it is the problem they are complaining about.
> > If developers are your company's most constraining resource, the key question is how to increase their productivity.
> This is quite surprising: developers are seen as a scarce valuable resource, and in a free market that means they should be rewarded for their rare and hard-won skillset.
Yes, they are. That makes them expensive, leading naturally to people seeking efficiencies in their utilization.
> Instead, the universal advice is to pressure them to be more productive, outsource them, etc.
That's not instead of them being expensive in the market, that is a consequence of them being expensive in the market: if a company is constrained by a scarce resource—one which it is expensive to get more of—then either (a) finding ways to get more output per unit of the scarce resource or (b) finding substitutes fornor untapped supplies of the scarce resource are obvious ways of addressing the complaint. The cost of acquiring more of the scarce resource from existing (e.g., not untapped) supplies is the problem you are trying to mitigate.
I dunno. Developers already earn ridiculous salaries compared to pretty much any other profession. At some point businesses just can't afford to pay any more, no matter how much they would like to offer their employees.
> I dunno. Developers already earn ridiculous salaries compared to pretty much any other profession.
A common misconception. Check out other comments in this thread. Folks in many other professions, such as nursing, can make about the same as "senior engineers".
> At some point businesses just can't afford to pay any more
I heard the same claim back when $150k was a top salary in SF. Then companies needed to pay more, and somehow they managed to do so.
Check out a tech company's balance sheet. The margins are typically more than enough to cover some raises.
"Somehow they managed to pay more"... that's one way to look at it. The other possibility is that only those businesses that could afford to pay more are left now. If you can scale to a million users per engineer, sure, pay them more.
If you can't operate at that scale, tough luck. You need to do exactly what the article suggests: outsource and buy services. In house dev teams are now so expensive that many companies just can't afford them.
> The other possibility is that only those businesses that could afford to pay more are left now.
What's wrong with that?
I can't afford to hire a butler, so I don't get one. The government doesn't owe me one. Nor does it issue a special visa so someone can come and be my butler for the $50/week I can afford...
Companies can load-balance menial tasks arbitrarily across undifferentiated labor, so much so that low-skilled workers have a hard time getting enough hours from the same gig.
The harder and more expensive it is to hire a specialist, the more important it is that the company utilize him fully. High salaries and long hours usually go together.
> The harder and more expensive it is to hire a specialist, the more important it is that the company utilize him fully. High salaries and long hours usually go together.
Until the specialist quits, and then your logic breaks completely.
Arguably, you're making him quit, since if you ever worked as a developer, you'd know there's only so many hours you can put in. Beyond that, you are burning out and generating more mistakes than valuable code.
My anecdotal observation is that both pay and work-life balance has been improving at FAANGs. I remember reading 10 years ago about how developers feel pressured to overwork in companies like Google. This doesn't seem to be the case anymore with my friends working for FAANGs.
Unless we're talking about executive-level pay (i.e. high seven figures), paying someone a few more thousands per year doesn't justify a destructive work-life balance. In fact, it's a self-defeating strategy that hasn't worked and seems to be largely abandoned by most savvy employers.
Obviously there is a limit. But employers are incentivized to slide in just under that limit, rather than offer part time or an especially relaxed pace as a perk.
There's actually very little difference in the surveyed % saying https://stripe.com/files/reports/the-developer-coefficient.p... access to talent (55%), software engineers (53%), and capital (52%). Note immigration requirements (47%) is lowest of the constraints on company growth asked about. I'd say the headline is questionable at best.
Developers as a community are currently screaming about a number of things companies can do to steal us away, even for less money:
- Go full remote
- Locate offices in reasonable COL US markets (my company has overwhelmingly rejected this one and skipped from NY/SF/Seattle to the developing world).
- Provide private offices, cubes, team rooms... any kind of workspace other than the in-vogue open floorplan barn.
Companies are not in their wildest dreams going to touch any of those things with a 10-foot pole at scale. Do they not know? Do they think we're lying? Or would they just rather complain than actually solve the problem?
And software isn't the first industry, this same process happened to biotech "successfully" driving down wages to an absurd degree.
Much of agism is actuulay moeny related too.
While allot comes from the belief that "young people are just smarter" (as opposed to whites or men as was the "common sense" in the past).
Much of the discrimination is because it is assumed that after a few years, technologists actually know how much they're worth while the fresh college graduate etc is awestruck by a wage that is barely over bay-area poverty line: There's an assumption you can't get a bargain hiring the over 35 set.
> technologists actually know how much they're worth while the fresh college graduate etc is awestruck by a wage that is barely over bay-area poverty line
I think this was a key part of the racket:
Faced with the need for engineers, employers offered very high entry-level wages for engineering positions. For most of the past 20 years, entry-level SWE pay was among the best you could hope for as a fresh graduate.
However, once an engineer got into "the system", they became "captive audience", so wages could be frozen. Imagine a typical 35 year old engineer with 13 years of full-time programming experience. What's he going to do about his frozen wage? Go to medical school and become a physician instead?
So engineers started at or close to $100k, but then got stuck in the narrow $100-150k band for the rest of their career.
Like most unfair practices, this one worked... for a short time. Longer term, it was destructive and self-defeating: the smartest, most far-thinking college students did their research, saw that the entry level wages were appealing, but then they become stagnant. It's a bait-and-switch. Looks good from the outside, but after a few years, you start lagging far behind your peers who went to finance, medicine, business, etc.
So they went into those fields instead.
These are exactly the type of smart, capable, senior software engineer that all these clever employers wish they had right now.
Not every company needs smart capable senior engineers. If you are just doing yet another SAAS CRUD app, you may not need anymore than an architect and some mid level developers. Full stack developers are becoming a commodity.
Most of the world’s developers aren’t doing anything that complicated. Yes I am a developer, and I command a slight market premium because of my architecture experience, but I am not the force multiplier that I was as a dev lead previously. I self demoted for a lot of reasons (for the same pay) but I know that my work isn’t as impactful.
> Not every company needs smart capable senior engineers. If you are just doing yet another SAAS CRUD app, you may not need anymore than an architect and some mid level developers. Full stack developers are becoming a commodity.
So you recognize even a single simple project like a single SAAS CRUD app requires at least one smart, capable, senior engineer (your architect).
Also, I'd say you're overestimating my definition of "senior engineers". A senior engineer is someone who actually completed a project or two. Someone you can entrust with big chunks of development work and be reasonably sure they won't mess it up.
Your "mid level developers" are likely senior by this standard, especially since the alternative, "a junior", typically means someone fresh out of college (or boot camp) with about 0 real world experience.
A senior engineer is someone who actually completed a project or two. Someone you can entrust with big chunks of development work and be reasonably sure they won't mess it up.
In that case would I have been considered a “senior developer” straight out of college since I was entrusted to create a fairly large system by myself in the mid 90s? I had spent close to 10 years by then as a hobbyist.
If a person who has just completed a project or two and doesn’t know anything about designing large, scalable, maintainable, systems and doesn’t know anything about infrastructure is a “senior developer”, we really either have a horrible level of title inflation in the industry or we just call everyone senior but some are just more senior than others.
I’ve been a software developer officially for over 20 years, but I know I really only have the last 10 years of experience and the first 10 or so were only worth about 2.
That being said, I agree that any real experience as an individual contributor over 10 years, isn’t worth much for most corporations. On one hand, your salary does peak, but on the other hand, so does your value to the company. As an individual contributor, you only contribute X number of hours worth of semi-commoditized value to the company. As a team lead or technical manager, your knowledge can easily be multiplied across the organization.
Is it really stuck if you're making more than 70% of America? I'm sorry you can't afford a summer house in the Keys, but you have to accept different careers have maximum limits, and ours tops out a bit above rocket scientist.
A good analogy here is the "pilot shortage" US airlines have been complaining about for the past few years.
The truth is that there's no shortage of competent people who'd like to be airline pilots. There's arguably not even a shortage of competent people who already possess the training and credentials. There is a shortage of people who are willing to put their expensive training to use at the near-starvation wages offered for entry-level positions with US airlines. So people either don't bother learning to fly, or if they do, they go sign with Asian or middle-eastern airlines, which have been expanding and are willing to pay good salaries for US-trained pilots.
Would you argue that pilots who demand more money than a US airline is willing to pay "don't understand how much they're worth"?
It's about tossing out any resume of a 40+ year old because tech is "a young man's game"
People become managers, generally, because they want to be managers. Why do they want to be managers? Well some are just assholes who like to boss people around but for most it's because their definition of career success is "becoming a manager".
Those people look at people who have similar years of experience but aren't managers as "losers", and don't care about or don't understand the reasons, i.e. many people actually prefer to remain ICs.
Ageism is exaggerated outside of the startup SV culture. I’m in my mid 40s and have never had a problem finding a job. My former manager is 60 and he self demoted to being a developer after putting his kids through college. Every developer I know over 40 is able to get a job if they kept thier skills current.
More broadly, I would not want to be the over-40 guy trying to interview for any team where hardly anyone is even close to 30.
After staying at one company way too long and becoming an “expert beginner” in my mid 30s, I had to basically start over and work my way back up to an architect level position. By “Architect level” I mean either officially by title or by responsibility and respect over the last 10 years. I had no problem getting development jobs. The issue I found isn’t ageism with people over 40, it is that they haven’t kept their skills current, are stuck in thier ways, and/or don’t respect thier younger team leads.
I'm not affected by ageism myself (yet), but even if it was only in SV, which is the biggest tech hub in the US, then it would be a huge problem.
But ageism is rampant outside of SV as well.
Despite the common perception on HN, there are plenty of places outside of SV where a software developer can make a high enough salary to live an upper middle class lifestyle in a lower cost of living part of the country. $135K-160K goes a long way in most of the country and there are literally millions of jobs out there for software developers at profitable companies not looking to be part of the “bro culture”.
There was an article recently on HN that the average age of an entrepreneur is somewhere in thier 40s. But, I’ve worked at startups since I was 35+. Many startup jobs outside of SV are just like any other corporate environment. It’s just the HN/SV bubble that makes people think that all developers are under 30.
That would be my assumption as well. Young kids are willing to work hard and smart while all the credits from their work go to whoever hired them. They still believe that just by being (technically) good they can thrive and become successful. Whereas their opponents, not other developers but mid-level management are not trying to be "good" they are trying to profit from others' work.
An older more experienced person realizes that much of the value of the software is because of what they put into it. They can also easily explain why that is to the senior management and therefore they are a threat to the mid-level management who are getting older themselves and don't want to fall off the shelf.
It's a game, people hiring developers are not looking for smart developers, they are looking for developers they can profit from and who they don't perceive as a threat to themselves.
Often the best batches of resumes come from international staffing companies, they are often faster and more efficient at putting butts in seats than the smaller staffing companies that focus on local talent s.
For "open-floor plan" I think the explanation is simple: it's cheap(er), and people in charge of facilities/ hr don't understand or care about the tradeoffs. It's funny, in our corporation they call it "space optimization" - I told our sr. director that it's appropriate since compilers also have "space optimization" as an alternative for "execution speed optimization", but he didn't seem to get the irony in that (or more likely, didn't want to, since it's out of his hands/ the layout policies are decided even higher-up, at the C-level).
And not everyone hates the open floor plan offices. Companies can point to the employees who either like it or are indifferent about it and tell everyone else they aren't being "team players".
I kind of wonder how much open office really is about cost. I mean, it definitely does matter for startups, but I don't think that's a factor at FAANG. I mean, look at this new FB office, https://www.youtube.com/watch?v=FmTZJRLtA30, there is a ton of open space, they could probably sacrifice just a bit of that for individual offices, or even keep it how it is and add offices.
Because probably only larger companies (very difficult for startups to innovate here!) can actually afford individual offices, and it's not exactly trivial to re-arrange, I think it just takes a long time for the conventional wisdom to change.
It must be about cost though, at least in some corporations. Why are they calling it "space optimization" here? Also, what are they measuring - since you can't optimize what you don't measure? I haven't seen surveys or something that suggests they measure "employee satisfaction" about it. I also haven't seen anything at all that suggests they might measure productivity, communication, whatever. All signs point towards "cost per employee".
> It must be about cost though, at least in some corporations.
I agree, I just don't think it's as much about cost as you might think (or as I used to think). Profitable companies can afford office space.
I feel like at some point (around the turn of the century ~2000) it was cool to be open office, if you weren't you were uncool, and the latest hipster generation didn't want to work for you.
I think things are changing though, and people are seeing past the latest fad of what people today call "open office." It just takes a while for the general-pop wisdom to change. Nobody's ever been fired for building open office, during this latest phase.
Much cheaper short term because the majority of projects are not finished or fail to provide a roe. Long term things could shift as big opportunies get missed.
I just finished 2 year contract with one of the largest banks in the world. Officially, they don't hire remote developers, but they have absolutely everything necessary including culture around having team members in widely different time zones.
After just a month I was able to convince my manager to allow me working fully remotely and I only showed up in the office about once in a quarter while working 350km away. I could not have been happier but apparently once I reach tenure I would have to be hired and could no longer work remotely.
Can't have you working remotely - the rules say so! Better to get rid of someone who was productive enough to stick around two years and also has (now) tons of domain knowledge than to keep this already-proven success going.
> Remote means you aren't interested in advancing inside the organization
Do they really want the work done, or do they want to actively encourage inter-office politicking? Not everyone wants to advance, and even in places I've worked where I've wanted to advance, it was made pretty clear that nothing was going to be happening on my time schedule (too many other people who'd "paid their dues" ahead of me already). So... wow - I was interested in 'advancing' but they weren't interested in me advancing. Would have been easier if we'd just... focused on the work, no?
One of the biggest lies we tell ourselves is our code will speak for itself. Whether you like it or not, politics is part of work. It's absolutely required for intra-department projects and sometimes even single-department projects, especially in big companies.
there's the politics of 'getting ahead' and work for the promotion that "everyone" is after. then there's the politics of ... getting along with coworkers and getting projects done (time mgt, priorities, etc). To me, they're different, and I was speaking mostly of the former.
You don't have to want to advance, you just have to give the illusion that advancement is a carrot that actually motivates you so that managers feel like they're doing their job successfully by dangling said carrot.
If your employees can get a 10%+ raise by switching employers, but nothing by staying, what exactly is the purpose of advancing inside the organization?
A former employer of mine took this to the extreme: They regularly audited in-person attendance by checking for badge swipes and subsequently pushed out anyone they deemed to be working remotely too much by way of attrition through stack ranking, regardless of actual output.
It turns out that being able to spend every moment in the office promoting yourself as a "10x rockstar" was more important than ever delivering a single impactful project.
Nope. If someone is interested in advancing inside the organization, you can use your position as a gatekeeper to extract rents out of them. Preferably they're also high in big-5 trait Conscientiousness and Agreeableness, so that they can do a lot for you, and will roll over instead of trying fighting back against being exploited.
As someone who hires remote only software developers I’d say that in our experience only something like 5-10% of people have the necessary self management skills to pull it off.
Most people really need the “structure” of an office to actually get work done... for some reason.
Amen. The current interview discourages people from being upfront on their weaknesses (try saying I am a little bit rusty on AWS or any other popular topic and see what happens -- I purposely call out my weaknesses because I would rather "over-deliver" when I am hired.). The interview process often focuses on looking for reasons to reject rather than evaluating strengths vs. weaknesses.
But... the savings won't be that much. I mean, for normal people it would be, but imagine you have a bonus tied to a % of cost savings. Do you propose something which might bring about a 20% cost savings? Or a 75% savings? Of course, I just pulled those numbers out of thin air, but the cost of, say, mid-level developers in SF isn't going to drop significantly, moving to a reasonably-high-tech hub. The base salary cost may go down < 20%, but any other attendant benefits (insurance, retirement, etc) don't go away, just might be shifted a few % - or might even go up(?)
Even if you paid the same, you'd have many more engineers willing to enter or stay in situations where they can afford to raise families at middle-class standards, not crowd into decrepit roommate situations.
How have you tested this hypothesis? I have tried to hire in low COL places and people want to move to SF instead. That’s fine, but there aren’t that many people in these other places.
Have you tried asking SF people to relocate to those places? Because I and most of my coworkers say we would do so easily.
I hear the complaint about not finding local engineers in those places. Thing is, we don't find any local engineers in SF either. Maybe 2-3 people out of 100. Everyone else is a <5 year transplant, relocated either by us or their previous employer. We have more people from the same random Chinese high school than from California.
> Have you tried asking SF people to relocate to those places? Because I and most of my coworkers say we would do so easily.
You probably wouldn't, though. You're probably not going to relocate to Tulsa or St. Louis or wherever, because once you start looking at the decision seriously, you're going to realize that even if this one particular company has attractive jobs there, if you ever want to leave or get laid off or whatnot, the rest of the job market there ain't so great.
It's the kind of thing that sounds great initially, but starts to fall apart upon deeper analysis.
Sure, but there's a middle ground between SF and Tulsa. Say, Denver or Chicago or SLC. Less tech jobs than SF, but still plenty. Higher cost of living than Tulsa, but not SF or NYC levels.
I live in Colorado and over the past couple of years have seen a lot of Bay area companies coming to Denver. Not sure if they are moving SF engineers over, but they are definitely building teams in these lower cost areas.
It's not just about number of tech jobs, but the quality thereof.
These days, programming is such a needed skill that coders are almost like accountants, practically every business above a certain size needs at least a few for internal tools. But that kind of work makes you a cost center, with the attendant technical and cultural problems.
What the major tech hubs offer is an abundance of even high quality programming jobs, in a wide variety of fields.
Sure but the grandparent post is talking about moving to a low cost of living city for some company, and then some years later that company downsizing or closing and laying people off, and then not having many other similar employment options available.
So if you move, start a family because you can now afford it, and then lose your job 5 years later, you're going to be less mobile and also limited by job options.
I think senior engineers are probably the hardest to hire for and also the most important, and they usually have families and a house so I suspect it's not as easy for them to relocate.
At least that's my impression given how many of my senior coworkers have absurd commutes as they continue to live in the same house they had before joining.
Senior Engineer is what, 3, 5, 7 years in? I expect most people to accrue 2 promotions well before they get married, have kids, and buy houses. People at that stage of life at my company are usually pretty advanced on the management ladder.
> I have tried to hire in low COL places and people want to move to SF instead.
In another comment you suggest that you'd pay $350k, but at $700k you would suspect their loyalty. I'm in Portland and not interested in moving to SF, and if you're offering $350 - $700k comp I'd be happy to talk with you. :-)
If it’s comp, then rejections would happen at initial pay band discussion or final offer. Numbers on Glassdoor for us look good. But instead I have very few leads whose work is interesting or who do well in the interview process. Frequently, they want to move to SF anyway. They tell the recruiter that.
Honestly, comp numbers are past the point on Maslow’s pyramid where they can get someone to care. If you’re not going to get a guy for $350k but you can get him for $700k, he’s not planning on sticking around and he can’t produce $1.5m of value in his one year that he’ll stay for the payout. Few people are like that. It doesn’t make sense to optimize for that.
I would expect this from people who have not experienced SF yet. The opportunity I'm suggesting is among people who are currently in SF and disillusioned with it.
That’s fair, and I get it. I just don’t have that many people like that working with me and I work with people from 22 to 45 years of age.
Seriously, I’ve had people move from here to Texas or Washington, and they keep the straight bump in wages that comes from not paying state tax. But that’s a single digit number out of a 100+ team. It isn’t helping expand the team.
Remote is hard, organizationally/culturally. It can be done well of course, but it's probably challenging for people coming from a traditional mindset.
The high-cost markets have too much momentum/desirability (other than the expense). Harder to find and recruit in them, I'd imagine.
Office space is probably hard to get/expensive in those high cost markets, so harder to do stuff other than open. Still would love to see it though.
If there weren't bodies to fill spaces left by us who want those things they'd change. Fact is there are still plenty of people who live near family in cities or have other reasons to stay that are barely within their cost of living/budget.
Not california or new york. On a secondary level, not seattle or other places seeing a big housing crunch. Something where the average house is the same as the average house cost as the rest of the USA, ~$250k
What is this community of developers and why haven't they decided to make a union to enact this change, instead of just screaming about it?
Those of us who are very much not developers in that 'community' are not screaming and are actually finding the jobs that satisfy our needs. That's a lot more effective than screaming at companies who don't actually want to work the way you do; and they're fully entitled to shaping their own culture and prioritising their own values. Values that may include: working face to face, physical collaboration, etc.
So how about looking for companies who share values instead of screaming at those who don't?
B: Have you tried offering what they say they want?
A: How dare you? Stop whining and get back to work.
A: Now, as I was saying about that developer shortage...
Yes, people who are satisfied with what’s currently on offer are satisfied. What exactly are you saying?
Face to face conversations work just as well wherever you are, and research indicates they are actually more prevalent when both private and collaborative spaces are available vs. one room for everything.
I saw this headline earlier. My immediate thought was that this doesn’t necessarily mean that companies understand the importance of developers. It’s just that developers are currently more scarce than capital. Which isn’t saying much, because companies have been able to get loans with low interest for many years now, thanks to our central banks.
If what the article says is true, it's great that executives are starting to understand the opportunity cost of technical debt.
Too many companies see software development as a menial "cost center" while hypocritically relying on it on a fundamental level for operations.
While I see where they're coming from - the ROI from software developers can be rather opaque for many industries - these companies are often hellbent on hiring as cheaply as possible (in-house junior developers with no experience) and cutting as many corners as they can get away with, all the while accruing massive amounts of technical debt.
> If what the article says is true, it's great that executives are starting to understand the opportunity cost of technical debt.
Nothing in the article implies tat "executives" (or anyone) has gained a better understanding of the cost of technical debt.
This is the main paragraph talking about technical debt:
> And yet, despite being many corporations' most precious resource, developer talents are all too often squandered. Collectively, companies today lose upward of $300 billion a year paying down "technical debt," as developers pour time into maintaining legacy systems or dealing with the ramifications of bad software.
So the article author says that despite the skyrocketing value of developers, companies generally waste this scarce resource on technical debt and related mismanagement inefficiencies.
I went through a few interviews earlier this year and no one met the standards for environment Joel listed almost 20 years ago. Unless one works from home, that requirement listed is pretty much a lost cause AFAIK.
I'm afraid I don't agree. I'm more worrying about my job than the companies about anything.
If lose it, I will spend months for finding a new one.
I will send emails with no response.
I will be offered to spend enormous time for multilevel recruitment process, just to be rejected at the end.
I will spend hours making shitty take-home tasks, just to be rejected. Some companies even don't check them when I upload it on a server.
I will be asked terribly complicated white-board questions about forgotten algorithms used in no place. All that just to be offered a job about coding ETLs or adding some Javascript to a website.
All just to get a simple job. It doesn't look like companies are afraid. It rather looks like companies have endless stream of candidates and want to crawl them first, so they could not hire them later.
My last job hunt: 55 resumes sent (I was a perfect fit for 15 positions, not 100% for the rest). 10 companies responded. 5 were interested only about the salary, 4 of them didn't respond, 1 responded with "you wanted too much, we are not negotiating salaries". 2 terribly complicated take-home things (one company didn't event check it before rejecting me). Just 1 job offer, I took it, as I didn't get any other option after 3 months of searching.
It was 2 years ago. I'm looking for a job again... I've sent 20 resumes. Got no answer.
All 55 companies were posting the same job ads for the next months. About 5 of them are doing all the time, and the web is full of opinions how great the companies are.
So generally I feel like I'm rather useless than needed for the companies.
Yeah, I keep reading about the software developer shortage “crisis”, but nothing about the real world seems to reflect it. There’s a shortage of the top 1% of software developers (“top” being defined by where you went to college and where else you’ve worked, not actual programming ability) - but that’s it.
I think I might just try to get into a different field. I'm a "recent" grad yet to get my foot in the door, and I'm pretty sure I'm capable of programming... just not of navigating the absurd requirements at every corner and apparent dearth of entry-level openings.
Maybe I'm just underqualified and not that good at all, maybe I'm doing something wrong in my search or I need to move to the valley or something. But thus far all my applications have been a complete waste of time and it seems foolish to continue down this path.
There are ways around this. Triplebyte and codefights are good options and finding a recruiter to refer you tends to improve the success rate (you can email me if you need help with any of this).
Well... I got to the programming problems on Triplebytes and timed out on most of them due to poor internet connection. I'm pretty demoralized but I guess it's time to check out codefights.
Interesting. When I was looking at potential options this summer, I mostly just responded to inbound interest on LinkedIn (including recruiters who had contacted me several months previously but I had told them at the time I wasn’t looking to switch). I spoiled up a few other options off of interviewing.io, and ended up heavily culling companies to keep my interview load manageable (especially since I was working full time).
Of course, I was in the Bay Area working for a reputable company (Asana), so that probably greatly affected my success rate.
What market are you in that it takes months finding a new job? I know terrible programmers who are receiving 2+ offers in weeks, above their previous salary, after being let go (fired).
The current job market seems very irrational to me. Salaries seem to be trending unreasonably upwards, companies are hiring anyone with a pulse, and output doesn't seem to matter.
What strategies are you using to find these positions? Are you working with any good recruiters? Are you applying for a very niche set of positions?
If you are only applying to jobs that you find through company websites, then I am not surprised by the lack of success in getting responses. I'd suggest trying to go through your network (hopefully you've built up professional relationships along the way) and find a job that hasn't been posted to the internet. I think you'll be more successful if you can get someone to recommend you for a job at their employer.
If this is actually true, it is easily provable: if companies have more access to capital than developers, then they should pay more to hire better developers, and you should see developer salaries rise. If this does not happen, it just means they are bullshitting: they can't get developers at the current price they are willing to pay.
That's not necessarily how the reasoning has to work.
It's possible companies have access to capital based on current profitability. If they raise employment costs, their profitability changes and their capital access can change as well.
It sounds like capital markets are saying, we like this cost structure. Continue it and take more money.
Companies are responding saying we can't scale because developers at current costs are rare. They will need to increase costs to hire more.
> It sounds like capital markets are saying, we like this cost structure. Continue it and take more money.
The capital markets care about the bottom line, not about internal cost structure.
So for example, a company with 100 devs and 1 CEO looks exactly the same to "capital markets" if the CEO makes $105m and each dev makes $100k, or if the CEO makes $5m and each dev makes $1.1m.
There's quite a large room to change the current cost structure without eating into the margins.
Beyond that, those margins at tech companies tend to be quite wide, giving even more room for flexibility.
True for the market, but markets dont actually give you the money. An investor (or rep) signs the check. When they show up they do indeed look at the structure and decide if they are happy or not with the pay structure.
Investors aren't some mysterious and capricious force that storms into your office and throws a fit over random reasons.
They care primarily about one thing: their Return on Investment.
If the company becomes more profitable by shifting more comp to developers, then the investor will support that wholeheartedly.
Tellingly, some of the most profitable companies right now are those paying their developers the best, e.g. FAANG.
Suggesting that paying developers more is a good move, financially, for the employer.
Anecdote: I was involved in the hiring process of a certain tech company. The entire company had "engineers are a scarce resource, use sparingly" as a key principle. There were many rules about how to apply that, and people regularly got yelled at by the CEO for violating said rules.
Fast forward to a hiring spree. The company was hiring for a particular non-technical position, as well as for engineering. They tell me how much they're paying each position.
Pay is the same.
The non-technical position had about x20 candidates than open positions. The engineering position had roughly 25% less, before screening out unqualified candidates and those who didn't pass technical interviews.
And who says "the market" wants engineer's relative share of the comp pie to stay exactly as it is?
TFA and all other evidence points to the opposite conclusion: that engineers are becoming some the most valuable resource in the organization, the demand for them is only increasing, so they should be paid accordingly.
Therefore, as an investor I'd be quite happy to see my engineers paid very competitively, thus ensuring their retention and performance.
This is provable more easily places in hub cities like Bangalore, Bay Area and Seattle. The benefits are trickling down to other cities slowly.
Most people who are smart enough to jump ships now have 2-3 offers. In cities like Bangalore, a jump can fetch anywhere from 20-200%. 20% is minimum irrespective of the current salary.
Perfect time for anybody who hasn't tried checking this in a couple of years.
That’s what the good ones are doing. For the rest it should probably read like: ”Companies worry more about access to cheap software developers than cheap capital” (because it's already cheap right now)
> software engineer salaries at the top end have grown like crazy.
All I've seen are 30-50% increases over something like a decade. These are hardly "crazy" increases for a field in which profits have gone through the roof, and they only apply to the "top end" as you say.
Developers below that top - i.e. the majority - have seen very modest increases at best.
Check how much executive pay increased over the same time span, to get an idea of "crazy growth".
Sounds like you jumped from a low-level sysadmin role to a senior devops role. That's a quantum leap and not comparable to what the average developer saw during the same timeframe.
20 years is plainly a long time ago for any professional in tech.
Your time frames aren't correct though. The Web/Internet revolution ignited in 1994 with Netscape. The dotcom bubble started in August 1995 with the Netscape IPO. By September 1998 (20 years ago), it was already 3/4 of the way to peak bubble and everything was already very crazy. 1998 was prime Internet revolution (also the year Google was founded). The Nasdaq climbed 100% over two years, first hitting 2,000 in mid 1998. The dotcom mania topped out in late 1999, the market topped out shortly thereafter.
Fair points, but my key argument regarding the timeframe was that it was merely the dawn of the modern tech industry. Things were just getting really started. The entire FAANG group was either in its infancy or wasn't founded at all (Facefook was only founded in 2,004, for example).
The sustainable, profitable tech industry we know today was just getting started back then.
This is not the case. The large amounts of liquidity available means that startups are easier to fund at a given price, but does not automatically have a big impact on that equilibrium price, which is driven by venture economics. Thus just raising more / paying more is not an automatically good answer if the venture loss / return rates haven’t changed, which they haven’t.
You gotta read this stuff carefully. "Access to capital" means people who will loan you money. Most reasonably size companies with a cash flow aren't at a point where no one will loan them more money, even if they are at a point where borrowing more money isn't that good an idea. Basically, it's like saying "Is it easier to max out your credit cards or hire skilled people?" Well, sure it's easier to max out your credit cards, that's easier than a lot of things.
Which is to say it's one of those journalist framing of a situation that means nothing.
I am not sure if you have noticed, but over the last 10 years, software engineering as a career, has grown extremely quickly. Both in number of people joining the careers and also in salaries.
I really don't think 150K salaries for new grads, and 100K salaries for recent bootcampers was normal, 10 years ago. Even in San Francisco. And yet in SF, that isn't too uncommon these days.
You probably want to spend some time reading everything Dan Luu has ever written about hiring and compensation in tech, and then get back to us on whether you still believe this.
If the premise of this article is true, we're doing a terrible job organizing ourselves. Individual offices, remote work, ownership of things we make in our free time -- we could have all of this if we used our power effectively.
Software engineers allowed themselves to be categorised as a cost centre rather than a revenue generating asset.
Costs are to be minimised while those preceived as adding value like sales, marketing, c-level execs get paid accordingly.
In industries that are unionised, collective action gives you the leverage and backup to say enough - but we don't even have an industry body that requires membership like the IEEE or AMA.
Companies that complain about lack of talent are generally the ones that refuse to pay competitive salaries. These are also the same ones that want the government to increase visa limitations and import cheaper engineers from overseas.
If there was a true talent shortage you'd see increases in salaries and other methods of compensation.
Did I say so? I'm not saying it's too high. I'm saying it's absurdly high. If I was saying it was too high I would be arguing that it should be lowered which I obviously would not want.
I mean, I don't think my statement is in any way inaccurate. It's kind of absurd that you can get a job that pays $200k+ total compensation your first year out of college with only a bachelors degree. Some people within the field don't even believe it's possible.
Software developers are one of the ultimate forms of throughput multipliers. Get the pixies in the box dancing right, and BOOM! Personnel load decreased!
In a world being driven toward hyperoptimization as fast as she'll go, your developer is your growth source.
If only you could get them to do what you want...
Which is why they like pulling developers from countries where the cultural norm is to shut up and do what you're told as I understand it.
It's also part of the bias towards preferring younger devs. Younger devs tend to be more pliable and "flexible" and don't ask inconvenient questions in emails that can be subpoena'd later.
Always ask questions. YOU have to be the conscience of the industry, if you don"t, no one else will. And even if they do have "another guy" lined up. Be vocal. Make sure your view can't be buried. If it smells, ASK and DIG. Someone very well may not be telling you something.
> Collectively, companies today lose upward of $300 billion a year paying down "technical debt," as developers pour time into maintaining legacy systems or dealing with the ramifications of bad software.
As a person who had looked intensively for a job in Central Europe in the recent months I can confirm this. Plenty of awful software and stacks. Decade old monoliths in ASP .NET, Visual Basic, pyramidal monstrosities in JAVA, fucking COBOL transactional and registering systems. The only reason they „maintain” these projects is some legal obligation, once the obligation expires the project will be shut down and people will have to look for a job in the year 2020 having experience with Visual Basic. You will have „standups” with „American colleagues” at 7pm your time. It’s literally working on carcasses. Good portion of German and Swiss businesses pushing out their rotten carasses over here as well.
OP's post and this seem to be telling executives to avoid fixing technical debt. Am I the only one who's reading it that way? Having worked at a company that completely eschewed even fixing basic formatting of legacy code for ten+ years I've seen how this mindset can completely hinder the development process.
As a software engineer with more than a decade of experience I have seen all kind of appalling "management" strategies in a variety of industries. And not so surprisingly the common denominator was that managers in every industry simply cultivate "speed over everything else" culture. Which directly translates into technical debt.
I stopped counting how many "rockstar developers" I have seen rising in their shiny armors, outputting some crap extremely quickly just to see them sailing away with a friendly manager pat on their back, so that half year later a whole team would clean up the mess after them.
What usually happens though is that the wrong kind of developers get promoted. They get promoted based on their social skills and ability to sound smart instead of actual technical ability and actual intelligence.
I currently make about 24k a year as a part time engineer (which should go up to around 40k if I go full time for this company).
I stay because of other benefits (good health care in Japan, remote work with bimonthly meetings, and most importantly I am doing good work with data that helps people in some way).
I honestly don’t think high pay is out there for what I want from a company. This one I work in checks all the boxes, for me. But if I pursue more money, I’d probably be stuck working in some crappy conpany where I’m a number.
You said it torgian; I'm looking for a company with Emotional Agility operating according to The Startup Way where people treat each other humanely and perks don't masquerade as strategy. I'd care to know more about your job in Japan if you would be willing to share
One could establish development offices in places with low taxes compared to California, Seattle, or NYC, saving them significant amounts of $ to avoid salary bloat. Why no one is negotiating on the sorts of deals with city planners surprises me.
As some stated in comments, it depends on many factors but mainly some companies mainly startups with good funding starting offering higher than market rate salaries which attract talent not just for money but also for the opportunity to make an impact and definitely fewer legacy systems comparing to well-established companies.
"If you're considering buy vs. build, the answer is simple: buy."
If you're not going to write or implement anything more advanced than "glue these two off-the-shelf systems we bought a year ago together", why are you so concerned about access to software developers?
There's a few reasons why: many businesses are in geographic locations where there's not as much software presence, they don't know how to hire correctly, and they don't want to swallow the bitter pill of "software developers cost significantly more than minimum-wage employees".
I've worked with a company where developers were hired to "glue these two off-the-shelf systems we bought a year ago together", but the implementation was laughably poor. From talking to this specific company's executives, I found that they were confused as to why things were always behind or why they were running into so many bugs. They told me that they were having difficulty accessing software engineers and that there was a market shortage.
What they didn't tell me was that their current "software developers" were ex-military operations folks with no actual dev experience, and that they posted on Indeed/LinkedIn but wanted local talent (in NC, not the Bay Area) and only offered $50k/yr salary with no real benefits.
Wanting only local talent (instead of remote) already reduced their available developer pool by 99%, and the terrible salary put the nail in the coffin. But to company executives, all of this only proved that they lacked access to software developers.
At current prices it’s entirely possible that some software businesses are not viable. Saying that out loud (or even admitting it to yourself) is not a great look.
Further, the software industry is such that failures are more common to successes when it comes to software projects. I suspect if that ratio got better or predictability did, we’d see wages rise even more (at least for those predictably successful devs). As it stands you can throw all of the money at the software hiring problem and still be making a terrible gamble on whether you’ll get software out of it.
The first point is possible, but given an era of super low taxes and massive stock buybacks, I doubt that many of these places can't afford developers, I bet they just would prefer to use that money elsewhere.
I think your latter point is much closer to the mark.
Funny thing is I am trying to get some people from market where they don't make a lot of money and trying to pay 1.5 to 2x what they can get. Still getting people to work is a hassle. I also have no need for ninja/rockstars. It might be that they have comfy jobs already and are afraid of change... Free market is not just about money it still is complicated mixture. So just calling executives greedy is not catch all truth. Maybe I should try to pay 3x more, but business is not there for 3x average salaries for that area.
Maybe it's possible that the fair market rate is actually 3X the local average salary? If that's true then my original point stands, that there are devs, you just can't/won't afford them.
Of course, there could be other factors at play, as you mentioned. Life is complicated, economics more so.
The same can be said of private individuals and housing. But that doesn't mean the level of willingness to pay is trivial or unjustified, and it doesn't mean people who think house prices are too high are greedy.
The reason this article seems off is because it's trying to capitalize on an earlier article by Nick Bilton, but this attempt at adaptation is missing the essence and mangles the point. The idea this article is trying to convey is better presented here:
We're F--ked: There is only One Antidote to Silicon Valley's Ills... Their Engineers
> Unless you're Amazon or Microsoft, you shouldn't be deploying engineers to build data centers.
i wonder if the author has heard of Google
> Including software developers directly in strategic business decisions will ensure you have the right product road map, the right team and ultimately the right technology strategy for long-term success
I would agree that including software developers is necessary -- but is it sufficient? The business and technology landscape are always changing in unpredictable ways. I question whether this can ensure "long-term success"
Instead, this article for instance advises employers to "increase developer productivity" and "outsource":
> If developers are your company's most constraining resource, the key question is how to increase their productivity.
"Increasing productivity" typically puts pressure on developers. This is quite surprising: developers are seen as a scarce valuable resource, and in a free market that means they should be rewarded for their rare and hard-won skillset. Instead, the universal advice is to pressure them to be more productive, outsource them, etc.