Junior devs should look for jobs once they reach the 2 years mark any more, for their own good as well. They now know better what they want to do, more focused, more experienced, and most importantly, more valuable on the market.
Boredom and wanting to work on something new is probably the biggest driver
I have to disagree with this point. Switching jobs is a very stressful and scary experience. Most people don't want to jeopardize their income without having some very strong motivator. In my experience, the most common reasons someone changes jobs is:- Promise of a higher income
- Low perceived stability at the current job (employees want to secure a new job before they're layoffs)
- Toxic work environment
It's no longer scary or stressful. I now choose to switch jobs regularly because I get better incentives to join somewhere else and I get more bargaining power with each transition.
C-levels and shareholders made it this way - if they kept with market rates and the organisation put more value in employees and their IT I'd stay around. But I've been seeing more and more of a shift to outcome-based budgeting, maintenance and refactoring isn't even part of BAU budgeting - it's strapped on to project work. This is likely exclusive to non-tech companies (even though most companies are shifting towards tech as their basis ala "Software is Eating The World").
Managers can only do so much within an org, I haven't worked for a manager I didn't like (I've turned down jobs based on my interview process though). Not US based.
I've literally worked at _one_ place that scored well on those three items. Most places are racing to the bottom in one or two of those. Usually it is pay unless you are somewhere competitive like the Bay Area.
> Boredom and wanting to work on something new is probably the biggest driver
That is much like the "exciting new opportunity" story people tell about why they changed jobs. It is not _real_ in the literal sense.
If it was real, they would shop around internally to change projects and succeed. There would be no real need to change jobs.
Idk where you have worked but I've literally never worked on the same project for longer than 1-2 years. Even if I was at the same employer for 6+. If you have people with realistic expectations who aren't piling on technical debt, maintenance work _should_ be negligible even if you are lightly attached to old projects.
With people you talk with honestly outside of work YMMV but I've never seen that as a legitimate thing except with naive people who ended up regretting it. I've only seen people being happy with it when they were already underpaid, unhappy with the culture, or forced to work absurd hours to keep their jobs.
You mean a salary or title increase? Yeah, that's in the GP's comment.
People claim all sorts of reasons for leaving jobs but its always one of those three or uncertainty about company longevity. (i.e. acquisition/financial difficulties for the company)
The other 10% is people who are naive or have a family/relocation related issue that you can never control for.
And yes, before you say it is impossible, I've worked at a company where "voluntary quits" was _that_ low and no one voluntarily left because they knew how good they had it. Literally, in a team of 20+ I knew all 3 people who voluntarily quit over the span of 10 years there.