But also note that sometimes the corporate agenda involves limiting the opportunities for change and experimentation, resulting in a programmer that amounts to a sophisticated line worker. Its true that many programmers lose their mojo simply because new frontiers arent being handed to them, but many still get career-depressed when faced with hard blockages from the biz bros.
Best solution: be a freelancer ;-)