While there are many reasons employees voluntarily leave their positions -- and companies are looking at those reasons plus other life events to try and prevent people from leaving -- I think there are simply two broad reasons why people move on.
Those two reasons are: The level of threat against the person and the level of bullshit the person believes they are putting up with.
It's a useful view from a Cubicle Warrior's perspective to consistently evaluate as time goes on in a position.
Job threats are those things that an employee believes could threaten their job itself or their personal well being. The manager, of course, is the top of the list here because your manager is your most important customer and the biggest threat to your career.
Given the level of reorganization in most large companies -- what I all the 5% unemployment rate and 75% churn rate from reorganizations -- it's not hard to have new managers quite often taking over (reorganized) teams. Personally, in over 40(!) years in the workforce, I've never had my annual review given to me by the same manager two years in a row, save one manager. And more than a handful of times, not even the same manager for six month reviews.
No wonder manager compatibility with teams is such a big deal.
But it's not just managers. Threats come from a variety of sources:
The job threat level, of course, is driven by fear. Fear of losing your job. It's very powerful.
If job threats are more top down, bullshit is more about passing some line that is different for every person. Every position has it's level of bullshit; it is a question of how much is tolerable and how much is too much.
The bullshit is really about company culture and the rules of the road:
Yeah, that stuff. How much of it can you handle? At what point does it cross the line?
These are not either or -- they are both. You can be having a high level of bullshit, but not feeling any threat to your position and can handle that for a while.
You can have a higher threat level (perhaps a new manager), but a very easy-to-handle level of bullshit and you'll be okay.
But if you are dealing with a high level of perceived bullshit in your position and then you are presented with a higher level of threat to your position...things will break.
As the Harvard Business Review article notes above, there are life changing events that happen that will trigger the action to start looking for a job ("Job hunting jumps 12% just before birthdays"). Those life events can force the examination of threats and bullshit and come to the conclusion it is time to leave.
Or maybe you're working on something significant and you work and work to get to a conclusion and then you are undermined by someone. Or you get a new manager and things don't go so well as your styles are different.
There are hundreds of possible events, but the point is this: once there is a trigger that flips you from staying to "it's time to leave," not much will change that position. In fact, most everything that happens at work going forward will most likely reinforce the position that it is time to leave.
It's almost always something emotional that triggers the tip point -- someone undermining you, a manager that does something to minimize your work, a performance rating that was not what you expected -- and sets off the quest to find a new job.
I'm not saying any of this is wrong, incorrect, or needs changing. But understanding threat and bullshit is an important way to look at how things are going on the job.
If you sign up for my newsletter, my bonus item is a little survey that you take every quarter so you can track the level of threat and bullshit.
Every job ends. It's best to figure out what triggers it and how long it will be before you need to find another gig.