I think Ron is right. Programmers are already motivated. The trick is not how to motivate them, but how to not demotivate them. I know that sounds like bad grammar, but at least it's better than BadManagement?. -- WaldenMathews
Strong agreement. Of all the places I've worked, the best ones, in terms of productivity, were the ones where the programmers were allowed to program - to improve the quality when they saw it necessary; to explore new technology where appropriate; to dress as casually as legally feasible; and to work the hours they wished. The places I disliked most were the ones that enforced dress codes, ignored programmer input into schedules/quality/design, and tried to treat programmers as factory workers. -- PeteHardie
There are things you can do to motivate programmers additionally. Explain why the project they work on is important - for your company, for the customers, for the users. Discuss what is technically challenging and why (if you are capable to). Fit persons with jobs based not only on skills but also interest. I know all this may sound like management bullshit but I've found it useful - indeed, in a cultural setting very different from US. Otherwise, I agree with you on this topic, but you talk about how to manage software development teams in general, not just motivation. -- NikolaToshev
For me, at least, I find the more I understand the need for the program, the more motivated I am. The very best way is for me to see the users of the program, listen to their frustrations, and then see what we can do to solve them. I've worked places where processes seem designed to keep developers as far from users as possible; I find that not only unproductive, but demotivating as well. -- WilliamPietri
I think that, in the absence of a negotiation mechanism like the PlanningGame, managers see programmer-user interactions as having a high risk of scope creep. --JohnBrewer
Although I find myself in the same dish as William above (pun intended, Will) -- getting my thrills from rubbing elbows with the users -- I know that there is a class of user and a class of developer such that the developers find contact with the users demotivating (such as when the latter act like condescending tyrants), and to them it's "motivating" (really anti-demotivating) to be shielded from that interaction. In the land of motivational dynamics, personal preference reigns supreme. But this doesn't tarnish the original point at all -- all the developers I've ever met come to the scene with something to accomplish, a drive of one kind or another, and learning to nurture and steer that is the skill that a software manager will do best to cultivate. -- WaldenMathews
I like coding -- or more accurately, I like to see code run properly -- GreenBar. I also like talking about what the program will do. I am a programmer. Let me do these two things more often, I will be happier. -- JohnSumsion
I like a challenge. Tell me it can't be done and I'll want to prove you wrong. -- JasonArhart
On the other hand, if TheyCanFireMe then they probably will fire me eventually (unless I JustLeave first), because productivity will fall through the floor.
See also ProgrammingIsFun, InternalDiscipline.