The current economic climate notwithstanding, developers tend to change employers quite a bit in comparison to other professions, at least according to my own anecdotal evidence. From my own experience I've been at six different companies over the last ten years, not counting freelance, contract or part-time work I've done in fields tangentially related to my main area of expertise (teaching, writing, speaking) which would bring that number up to eleven companies.
My reasons for leaving those companies are many, from wanting better working conditions, to wanting to move beyond my position, to needing more money, to needing health insurance, and finally to avoid being laid off when I felt the time might be near (and indeed it was as my replacement unfortunately found out). I'm speaking from my own experience because I wouldn't assume to speak for others, but I would guess that there are many more reasons developers might have left a given company - maybe the company had no career path beyond senior developer, or maybe the company was using antiquated technology and had no interest in upgrading to allow you to stay current. Whatever the case, I think that it is a fair statement to say that developers tend to not stay at a single company for more than 2-3 years on average.
This isn't a bad thing. Pragmatically you can get over twenty percent increase in your salary when you switch companies - up until you hit the ceiling for what the market will bear for your current position. You also have an opportunity to accept a position with a higher level of responsibility than the one you just left.
There are also benefits to this for employers that I've noticed over the years. When developers work at many different companies they get experience seeing how diverse companies handle the same problem differently - technical issues, configuration issues, infrastructure issues, methodology issues. A lot of the time a company might be new to a given methodology or technology implementation and would welcome input from someone who has seen it actually working, or who has seen what could go wrong.
But there comes a time in every developer's career where one finds a company that is worth investing an extended amount of time in, maybe even the remainder of one's career. I've come to call this finding a home and in part 2 I'll outline my own criteria and share about my own experience with this.