If you try to change jobs every 2 years and are not great at your current position, you'll likely be sorely disappointed.
If you try to change jobs every 2 years and are not great at your current position, you'll likely be sorely disappointed.
Depending on the job, 2 years is plenty of time to get well acquainted with the work flow of a position. The jumping ship happens when someone is ready to move up, get more responsibility and more pay, but it isn't happening.
At my last job, after 6 months I felt like I had a firm grasp on what I was doing. After 1 year I was starting to get bored because the work was too easy -- I was good at it, and often consulted by my seniors and juniors. My company did performance reviews every 6 months, and only reviewed for promotions and raises once a year.
At one year six months, I met with my boss and told him I was ready to take on more responsibility. The response -- "Yeah, I'm really happy with your work and will make sure that's clear on your next performance review". Was I going to wait another 6 months? No. I jumped ship and got the responsibility and big pay raise elsewhere.
I don't think it has anything to do with abandoning a job you're not good at. It has to do with wanting more responsibility and pay. Ship jumpers probably feel like their job is too easy and that they are good at their current position, as is implied by your survivorship hypothesis. The good talent is the one jumping ship.
IMO that's terrible business practice, especially in software development.
If you try to change jobs every 2 years and are not great at your current position, you'll likely be sorely disappointed.
As you say Joe Dev wasn't good enough at their job for anyone to work to keep them, but somehow they have to be excellent to land a job somewhere else every 2 years. My point is Joe Dev is excellent at something, but that is interviewing. It says nothing about his actual job skills except that they aren't so great as to have a company bend over backwards to keep him.
I think there are companies out there that will pay more than what I am on, but trying to differentiate myself is becoming a problem. I don't have experience in NoSQL / big data / whatever buzzword, because I choose the right tool for the job, not the latest fad. Hell I even got an email from a company looking for "big data" developers. I asked what size there data was, as usually I see a relation database being better suited to most problems. No reply after that.