I lost four years in my career because I was afraid the next company would be worse. It wasn't. Pick your battles carefully and know when it is time to move on.
Seconded. Plus, I don't really buy the 3 year thing. Once you know what to look for, it isn't hard to detect serious problems. Horrible source code? Engineers that don't know how to use SCM? Politics? Cargo cult processes? I don't think it is that hard to figure out. You will have annoyances in any job, but there are broken cultures, and then cultures that continually try to do the right thing, and fix themselves when something goes wrong.
It ranges from large companies who say "this is an important issue, let's meet next month to discuss" to small companies who say "I was worried about that, so I made a fixed decision an hour ago." There really are different cultures of ... not really so much failure, but dysfunction. Companies can succeed while being dysfunctional at the same time.
Horrible source code is a good one, it's a great indicator of very deep management problems that can not be solved. Run away after you see it.
>that can not be solved.
Would not go that far.
Depends on the size of the company I guess. At large corps, it's hopeless.
Hopeless in theory?
Ignorance is bliss.
Definitely. And I wouldn't discount that bliss-period at a new organization. If it is happier, it is happy.