Here's a very nice article i stumbles on
http://elver.cellosoft.com/2005/10/11/choose-life-choose-having-a-life/here are some excerts
There are a few big companies that offer very boring jobs. The kind of jobs where you basically do what you’re told and what you’re told is very detailed. The management finds a client. The client has a problem. The analyst tells you exactly what the code should look like, sometimes down to the names of the variables. And then you code. There’s no creativity involved, no thinking, no choices to be made.
Software development should be fun. There are deadlines to meet and sometimes clients to please, but it should not be a full day job where you only sit and code whatever the analyst tells you to code. I do not want to take orders, I want to either take problems or find the problems myself, and then crank out solutions.