Developers have to realize that sometimes your skill set exceeds the capabilities of the work environment you were originally hired into. What I mean by that is, if you find that your work environment is no longer sufficiently remunerative in terms of the challenges you are presented with as a professional "problem solver", that you aren't getting the raises, perqs or bonuses that you feel you should be getting for the innovative, quality work you do, or that you just plain feel that your work environment is less than what a professional developer should expect, then it's probably time to "Move On".
Opportunity Cost of Retaining Good Employees
Many employers don't understand a basic fact in the marketplace: It costs less money to keep good employees happy than it does to have to keep replacing them when they leave. It takes a developers 3 to six months on a new job before they are really starting to make a contribution. If your developers are constantly leaving you because you haven't provided the kind of environment to keep them happy, you are going to be in a constant state of retraining new hires and bringing in new people to replace those that left. You are going to be constantly paying headhunter fees, have your staff all tied up with the extra effort it takes to bring new employees up to speed, and the extra administrivia and paperwork it takes to keep the revolving door you've set up for yourself running.
In sum it would have been a lot cheaper to pay people more, give them more benefits and a better work environment, and have them be happy and stay.
"Moving On" is generally a difficult thing to do for a lot of software developers beacause of inertia - this is human nature. A body at rest tends not to suddenly start moving on it's own without some sort of external influence. Sometimes you may have a Significant Other who adores and respects you, and supplies the encouragement to overcome the inertia; other times you yourself must supply the determination to do better for yourself.
And, sometimes you need to consider your situation carefully, pull your pants up by the bootstraps and FORCE YOURSELF to get to a better place. In other words, YOU need to supply the influence on YOURSELF if you want to move ahead and upwards in your short happy life as a software developer! If you do not, inertia will keep you in the same place, and you and your career may stagnate.
You deserve it. If you are stuck somewhere that is less than par, the only person you can blame is - YOURSELF.
Think about it. We are in a great economy and the developer market is very tight in a lot of areas of the country. If you aren't happy where you are, then you need to get your ass in gear and LEAVE!