I think the blog entry Alex is referring to is
There was another article that I read a while back that explained the career of a developer. It was actually geard towards managers being able to accept that people are going to quit, but it really showed the mindset of a true developer.
The jist of the article was that when a developer starts a new job, they have a business value of 0. As they learn the business processes and begin to contribute their value shoots up very fast. At some point, they reach the apex of where their value will start to plateau. At this point, there's two choices. They can either move into management or they can find a new job where there's a new challenge.
Keep in mind this was not focusing on what they referred to as "Maintenance Programmers". Their definition (and I agree with them) of a maintenance programmer is a person who is content doing the very minimum to get by. These are the ones who put in their 8 hours, then go home and don't think about code.
So, in my opinion, the career tree of a developer has on branch...and one branch only. And that is Developer! When you reach a point where you're not learning anything at the company you're working for and you're not truly being challenged...continue your Developer position at a new company.
Unless of course you want to do managment...then you need to let the owner/upper manager know thats what you want and find out what's required.
im in ur stakz, overflowin ur heapz!