I read Andy's post Changing Jobs - Should You? today with great interest. I think it is good topic in the sense that by fully exploring/researching this topic, both employers (usually represented by HR and senior management) and employees (like us IT people) will better understand each other, and thus avoid the intangible "opportunity expense" that may occur to both parties and from an IT industry perspective, this may increase the industry production, quality and efficiency.
I'd like to take myself as an example, in the past 10 years, I have changed five jobs, some changes are unavoidable. For example, I immigrated to Canada in 1999, so no doubt I had to quit my previous job. But the following two job changes were absolutely not voluntary, and each was associated with company acquisation. The first occured in the end of 2000, my original company (in Halifax, NS) was purchased by another big company in US, and I was a SQL Server DBA there supporting HR, accounting departments who were using Epicor products based on SQL Server, the new parent company was using Oracle Financial products, and there was no possibility that Epicor products would continue to be used after the acquisation and transition was done in about 6 months. I made a decision to jump on the first coming opportunity in Nov, 2000. In late 2003, my company (in Ottawa, ON) was purchased again by a bigger company, and I saw my colleagues being laid off every few weeks, and when the project I was in was over, I became "unbillable according to HR" as there were no projects available. This time, I was laid off, the first time in my career life. I was astonished and helpless at that time as I always thought I was very strong in technical skills / knowledge and thus would avoid being laid off.
From then on, I started my contractor career path as I do not want my fate being decided by a HR people who thought I am "unbillable". With this said, I tend to disagree with Andy's point that "if you survived you weren't in the bottom 10-15 percent", this is not true. To me, if you do not survive, it does not mean you are in the bottom 10-15 percent, you may still be in top 10, it is just because the company wants to maximize profit and cannot afford or does not want to keep you a little bit longer.
From my experience, I somehow come to the following conclusion (I may be wrong): In the first place, there is no loyalty from an employer to an employee, once the tough time comes, no matter how good you are, how loyal you have been to the employer, you will be let go. I guess because of this, there is no loyalty from the employee side as well, and that's the root cause of changing job as "loyalty" is not an "expensive" word here.
I may be off topic, but anyway I come up with a list of pros and cons for changing jobs from my own experience
More opportunites / challenges to expand / sharpen your technical skills. You may get to know lots of different environments with various different problem domains, no doubt, this will help you a LOT in your career development.(My example, reflecting back, if I still worked in my original company in Halifax, I probably will still work with one server supporting 10 to 15 people, while currently, I need to take care of dozens of servers, with quite a few databases around 1TB supporting tens of thousands users)
Enhancement to your capability to adapt to new environment, if you can survive changing jobs every one or two years, you are already a flexible person that people can count on to deal with tough issues. (My example, I worked for a company who is heavily audited due to regulation, and this greatly impacted the way I worked as a DBA)
Making new friends and increasing your social capital so long as you prove your capability of doing your job well. (I guess no example needed here)
Free travel to different places (My example, I worked in Eastern Canada, where I enjoyed the great Atlantic view, and I also worked in Ottawa, where it boasts the longest (in North America?) skating path in Redeau River, and now I work in Vancouver, which is boasted as the top 3 living places in the world) . I know this is not attractive to people who have settled down with a family :-)
Potential big increase in your compensation package. (My example, from my first job to my 2nd job, that was a 40% increase in salary, while the annual increase is usually 2 to 6% in every company for regular employees)
You may be branded as a frequent boat-jumper and thus have fewer opportunities to become a permanent employee when you want to. (My example, when I tried to apply a permanent job, I was always asked by the question, "Why did you change your job so frequently between 2000 to 2005?")
Your psychological well-being may be affected negatively from time to time when dealing with new challenges too frequently. We are human beings and avoidance to pressure / danger is our nature. Working long time under pressures does no good to us. (My example, once in a new job, I always try my best to avoid any mistakes, no matter how trival / non-critical it might be in the first three months, and this consumes lots of my energy and always get me tired out)
You may lose your opportunity to be promoted. (Need I say more?)
You may be considered as "selfish and cold-blooded" when a company tries hard to retain you while you are still determined to leave. (My example, due to family reason, I had to leave a company which I liked a lot, and where I was highly evaluated as well, the company even offered to find a job for my then girl-friend, unfortunately my girl-friend had her committment to her company)
To further continue this "changing job - should you?", I think it may be interesting to explore the following scenario/questions:
You are a CEO of a IT consulting company, the company is in a bad financial shape due to the slow-down economy, what can you do to avoid lay-off, which no-doubt will impact the morale of the compay staff?