I think a lot of this is because employee turnover in the software industry is much higher than for most professions.
An accountant, lawyer or architect can reasonably be expected to stay with the same firm for a decade or longer, often their entire career. It makes sense under that context for employers to invest more in long-term skills.
Whereas, once you get to the heart of Silicon Valley, it's not unusual for people to jump employers every 6 months. That's maybe not the rule. But even Google and Microsoft has turnover rates that imply a half-life of no more than a few years for the average employee. The economics of long-term re-training just doesn't make sense.
Is this the worse thing in the world though? It allows savvy workers to continuously jump around companies and continuously re-negotiating higher compensation packages. That helps to make sure that workers are paid at or near their market value. In a way that doesn't work in the accounting industry, because future employers would look down at your resume history.
I managed a software development team, staffed with a number of folks that each had about 30 years experience. We were a fairly advanced team that wrote image processing pipelines in C++.
When they finally rolled up our team, after 27 years, the person with the least seniority had ten years.
It's entirely possible to keep folks for long periods of time, but it requires some pretty serious management chops, and those skills are not exactly encouraged, in today's world; in any field -not just software development.
I worked for a Japanese company. The Japanese wouldn't even acknowledge my employees until they'd been around for a year. Having the same people on hand, year after year, was pretty much required, as our projects always took the long view.
I can't even imagine having an environment where engineers are expected to quit every year and a half.
No matter how good the manager is, if he is beholden to an HR department that only gives slightly above COL raises while the market explodes, people will jump ship.
Our HR was run by the Corporate General Counsel. It was pretty much as bad as you can get.
Also, we were paid "competitive" wages (read: below-market).
I was the manager for 25 years (I should mention that the engineer with the most seniority had 27 years -we started together), and I feel I did a pretty good job. Considering they did not "jump ship," I guess something went right, eh?
Nowadays, it seems that people "manage by fad," as opposed to managing humans. It's kind of heartbreaking, really.
Until they find out that while they were getting 3% raises and their salaries were well behind the developers who cane in after them that were paid at the market rate.
Did it ever cross your mind that there are more things than money which make a person stay at a company for a longer period?
For me personally, if the money is enough for me to make a comfortable life with my family, other things at work become important. I could never spend most of my days with assholes or do idiotic work even if the pay was way above market value, for instance. I'd also trade money for more free-time, if possible.
And yes, the company I work at does feel like a family. But nobody had to tell me this. It just does so, naturally.
That logic doesn't hold up. The overhead in learning your way around a Google or Microsoft-sized codebase is much larger than learning a new language or framework.
That's no surprise. Both of those companies have many individual codebases that are larger than any web framework. For instance, last I checked, Django clocked in at around 60-70k [0] Python LOC. The Windows kernel source, IIRC, is over 1M LOC, and, obviously, much lower level than Django.
---
[0]: Also, IIRC, 20-30k of that is taken up by the ORM.
This is a good comment with a lot to unpack, but I want to raise a couple points here.
First, I wonder if firms investing in training could possibly improve turnover, thereby creating a bit of a positive feedback cycle. It doesn't even have to be formal training, either. It could be something as simple as having a weekly journal club, or the equivalent, and encouraging engineers to read at least one research paper a month. [0]
The second aspect, engineers moving jobs just to get raises, seems weird to me from a market efficiency point of view. Interviewing costs companies money -- so much so that it's something they should want to do as little as possible.
Many companies don't keep pace with the open market in terms of raises, which is a primary force driving people to job hop. Are there any studies comparing companies that do at least attempt to keep comp for current employees in line with the open market against those who don't?
---
[0]: In my experience, reading research papers thoroughly can be a pretty thought intensive process. In grad school, where I studied math, what I would do is read the abstract, decide if it was interesting, then skim the section headings and statements of theorems to see if I wanted to go further. If I did, and I was searching for a particular widget I needed for a proof, then I would read as much as I needed to read to digest the proofs of the useful theorems. If it was for general interest, then I would read the whole thing. I found that once I got an interesting paper in my hands, fully comprehending what it said could take up to 1 day per page for particularly dense papers.
An accountant, lawyer or architect can reasonably be expected to stay with the same firm for a decade or longer, often their entire career. It makes sense under that context for employers to invest more in long-term skills.
Whereas, once you get to the heart of Silicon Valley, it's not unusual for people to jump employers every 6 months. That's maybe not the rule. But even Google and Microsoft has turnover rates that imply a half-life of no more than a few years for the average employee. The economics of long-term re-training just doesn't make sense.
Is this the worse thing in the world though? It allows savvy workers to continuously jump around companies and continuously re-negotiating higher compensation packages. That helps to make sure that workers are paid at or near their market value. In a way that doesn't work in the accounting industry, because future employers would look down at your resume history.