- hygiene factors such as working conditions, quality of supervision, salary, safety, and company policies
- motivation factors such as achievement, recognition, responsibility, the work itself, personal growth, and advancement
...
Realistic deadlines are a huge part of being set up to succeed. Developers want to build software that not only works, but is maintainable; something they can take pride in. This is not in-line with product development's goals, which are for developers to build software that works, and nothing more.
Being forced to build crap is one of the worst things you can do to a craftsman.
Excellent management, both for projects and people, is a must-have motivation factor. This means no micro-managing, the encouragement of independent thinking, knowing what it takes to build quality software, quick decision making, and a willingness to take a bullet for the team when product development tries to shorten the schedule.
we're happiest when we're learning new skills or challenging old ones.
Developers love a challenge. Without them we get bored,
The wrong types of challenges are things like: "Fix that other guy's code. You know, the one we didn't fire because we were afraid he might cause problems. Well, he wrote a really crappy system and now we need to fix it and make it high-quality and maintainable. Oh, and you have until tomorrow."
Developers are in the trenches, and they're the first ones to know when a system or process is not working.
http://www.softwarebyrob.com/articles/Nine_Things_Developers_Want_More_Than_Money.aspx