As a programmer/developer/software engineer/what have you, when do you decide it's time to move on from your current position?
I'm trying to come up with a generally accepted set of criteria that will help me grow a nice career with an upward arc that I find satisfaction in. I want to develop a way to critically evaluate current position vs. potential opportunities.
For those of the SO audience that have been in the programming-related field for awhile, what are the primary criteria a developer should take into consideration? What do you think are some of the best career decisions you've made, and why?