Jurgen Appelo writes about what motivates developers.
I noticed a couple of things about the responses he got.
1. There is not one single mention of the Customer. Its a shame but I assume this is because developers generally don't have a relationship with the customer. Between them is the manager - see how often the boss or the manager is part of the motivation.
2. There is only one mention of the User. Similarly the developer doesn't have a relationship with the user - the manager and the customer stand between them. Does this also mean that the developer isn't even thinking about the user?
3. There is no mention of time, schedule, budget or quality - ok so developers need to be focused on producing code while the managers worry about that stuff - but surely coming up with the quickest, least expensive good quality solution is a motivating factor for some developers?
I'm sure that developers are motivated by technology and creativity more than anything else but in order to be agile I think its important for a team to contain at least some developers who think about the items mentioned above - at least the more senior members of the team. If we are motivated by the customer and the user and what they want us to deliver then I think we're more likely to succeed in the ultimate goal which is to give them what they asked for. This should include a dialogue where we offer them our wisdom to ensure they make the right choices about technology and we set their expectations about time. Which brings us to budget and schedule which developers at least must respect if not be motivated by it.
For me Jurgen's notes articulate one of the fundamental issues in software development that causes the gap between the business and IT.