On the Unhappiness of Software Developers
For those just skimming, here are the top 10 reasons for software developer unhappiness, according to the paper:   1. Being stuck in problem solving
   2. Time pressure
   3. Bad code quality and coding practice
   4. Under-performing colleague
   5. Feel inadequate with work
   6. Mundane or repetitive task
   7. Unexplained broken code
   8. Bad decision making
   9. Imposed limitation on development
   10. Personal issues – not work related

I've dealt with most of these, and I think they betray the mantra of the "modern" software engineer: push features fast. Code quality, adequate explanations, proper planning, and lenient time tables are an afterthought.