There are lot of people who are still working in the same company for more than 10 years. What is the motivation that makes you to stick with current job ?
I've been with the same company for eight of the past ten years. My reasons for staying are (in no particular order)
Location - The office is only a couple miles away from my home. This makes the commute time relatively short. When the weather is good, I can bike there in a short amount of time.
Pay - The pay is decent.
Variety - I get to work on, debug, develop for a variety of areas in the flagship product. As such, I get to learn something new.
Telecommuting - Though the office is not far away, my team and manager are. I can work (quite effectively) from home without going in to the office. This helps me spend more time with my family.
Specialization - I've invested around ten years specializing in my field. There are not that many local players in it.
Passion - I love my job and working in my field.
Co-workers - My co-workers are great! Knowledgable, friendly, able and fun. My manager is thrilled with my work, and lets me know. Recognition goes a long way.
Hours - Flex time.
Risk averseness - I would be dishonest if I did not include this. All family responsibilities have been on my shoulders alone for years now--income, kids, caring for the sick, .... These demand vast amounts of my time and resources. To continue to provide for my family without uninterruption requires a job with the right amount of flexibility (which my present one does). Incidentally, being awesome at my job helps create the conditions that allows that flexibility.
Competency and complacency.
I work for a mid-size company. We also acquire companies, so I've seen this pattern a few times.
The senior developers are there through a form of selection. If they aren't competent, they leave in a layoff (always ups and downs in an industry, especially when looking at a 10, 15 or 20 time frame).
Complacency is probably more along the lines of what you're asking. And, there are lots of reasons. Here's a few. Usually I see many of these in the same person (including myself)
Has a life. Once you've been somewhere for 10+ years you've probably gotten past the "developing software is my life" phase. You have kids and other activities outside of work that are far more important.
Confidence. Leaving a company is hard and opens you up for judgement (to get the job and to be in the job).
Reinforcement. If the person has been there a long time, I'd bet at different periods of their career there were significant accolades heaped on them. Those successes and positive reinforcement can do a lot to build a sense of home and loyalty.
Comfort/not a thrill seeker. You know the job. Your good at it. Everything else is an uphill battle.
Salary/benefits. I have this one last. In short, its enough because most people, with some work can do better. In software development, salaries tend to peak in your early 40s if you aren't growing. What actually happens is they have enough to be comfortable. In other words, for their own personalities they've probably reached the upper part of the needs hierarchy.
Quick edit/addition: Don't assume that these people don't periodically look for other jobs. Either the individuals or the jobs just aren't sufficient to change the status quo.
I've been at my current job for 4 years, and I was at my last job for 12.
What I like best about my current job is my co-workers. They have very positive attitudes and are oriented toward problem-solving as opposed to complaining.
Another factor is that management is supportive of best practices, including change management and project planning. There's a conscious effort where I work to get away from "cowboy coding" and putting out fires.
I can't speak for everyone of course, but as someone who has held his current job for 15 years here are some of the core reasons I have stayed so long.
Tenure Perks: I am fully vested in my 401K and based on my tenure I am now eligible for almost 40 days/year of vacation. Every time I look at other jobs, I think about giving up all that extra time off and it is a very compelling reason not to go.
Salary Perks I have a ton of experience within the company and am very aware that a large part of my compensation is based on knowing the company inside-out and having valuable well-established working relationships with almost everyone. I feel like at a new organization I wouldn't be able to command the premium price. Granted, I could go to a competitor, but our industry is fairly niche and a lot of the other companies are very unstable and prone to big layoffs.
Relationships Over all these years I have developed dozens of very close multi-year work-friendships and intrinsically know that no matter how much you try, those friendships tend to fade after you are working somewhere else. I like hanging out with dozens of my friends all day at work.
Comfort: Not the main factor, but it is a factor. I still keep in touch with lots of people who have left the company and the grass really isn't greener. Also, as the second most veteran employee in my company with tons of industry/company experience and a solid relationship with upper management there is a lot of job security that is hard to give up.
I'm sure complacency has some role in it, but not as major as people are making it out to be. Working at the same company != working at the same job. If you are stuck in the same job the whole time I might agree with the complacency thing more. Even then, most companies undergo massive change over time. So the same job isn't necessarily the same job. With regard to technology, that changes every 2-3 years regardless of your business address. So it isn't like you are finding a career cave and hiding there to avoid keeping up with the world.
As Jim Rush mentioned, I've investigated other opportunities dozens of times in my career all the way up to interviewing with other companies. Once I accepted a counter-offer to stay, another time management addressed my concerns and talked me out of leaving.
Comfort. When you're comfortable enough, then you are likely to stay where you are. At my last job, there were several developers who had been there over 15 years. If things aren't changing frequently enough, I start to get bored and when my boredom affects my performance enough that I notice it, then I start looking for a new job.
Here is an interactive way to answer your question.
That interactive analysis application is based on real employee's comments.
I can't share my experience about that since I never lasted more than 1 year at the same company. As a freelance consultant, I was like a mercenary.
There are lot of people who are still working in the same company for more than 10 years
I somehow feel that category of people would never subscribe to Programmers.SE. Or ever hear of it.
What is the motivation that makes you to stick with current job?
Age, fear of change and failure, unwillingness to take risk, decreased employability, other priorities like family life or the need to page mortgage.
Or they are the CEO of a successful company and there is no reason to give up.
I've not been in the software industry for long and I've had 3-4 companies worth of experience. One of my largest concerns is the opportunity to make a difference and have the kind of people who are willing to learn and better situations. The most exciting experience was when a company that didn't have much focus in unit testing, allowed me to spend a couple of months presenting my findings of SOLID and TDD to the team. A few members of the team were then so inspired and become highly motivated at how we can move forward and better our development.
That kind of attitude, in management and employees, is something I am now always looking out for.