As someone who worked for IBM for more than 30 years before taking a job with another company, I can say that these were my reasons for sticking out so long....
-
For at least the first 9 years, IBM was flush, and even though it wasn't a stated policy, IBM had a no layoff practice. That and a good salary and benefits, and oh yeah, a pension AND 401(k) kind if made it a no brainer to stick around.
-
After 1994, I started a family. Now my reason for staying was that IBM offered really wonderful flex options. For each of my two kids I took off 4 months and then worked part time on the flex work leave of absence.
-
Through the rest of the 90s and through the 2000s, it was the ability to have a paying full-time job that I really liked, working from home 100% of the time that kept me there. Got to do a lot of traveling and I can honestly say this was the best years of my entire IBM career.
-
By 2012, my kids were in high school and IBM and its bennies weren't all that great. But I wanted to make it to 30 years.
-
By 2015 I had started looking around with some seriousness at an escape plan. Long story short, I got new job with a raise and better benefits at a new place. My IBM years and my constant paranoia about keeping up my skills helped immeasurably.
The kicker is that because I stayed so long, I am entitled to a few things that the "5 and out" crowd isn't, including the fact that I am still getting occasional checks for invention disclosures that were in process when I left. I don't think you're entitled to those if you don't retire from there. Plus, I got the 401(k) match for my last year there even though I left in June. I'm also supposedly entitled to IBM's crappy retiree medical thing, but at my new company, medical is 100% covered, no premiums so I haven't bothered.