Personal Commitment
Though this is not one of the foundational factors or key motivators, we have found that for motivating staff, the ability to seek out and obtain personal commitments for key deliverables is an important ingredient that defines an outstanding software manager. A key to obtaining personal commitments at critical times is casual engagement all the time.

When important projects or milestones are looming, the best way to ensure peak performance by your staff is to seek a personal commitment from those key contributors who are most capable of producing success. In a private setting (or as private as possible, without dragging them off to your office or a conference room), approach them and discuss the looming project or milestone. Discuss with them their part of the project. After it is clear to both of you what their contribution will be, reiterate why the project or milestone is important and ask them if they will “move heaven and earth” to make sure the milestone or project is completed on time or successfully.

Most technical people are not motivated by fear or rewards, but rather by personal pride and wanting to perform well for their peers or manager(s).  By securing a promise as a personal commitment, you will find that people work harder than you might expect from almost any reward you could offer. Make sure you acknowledge their efforts and spend at least as much time afterward discussing the project’s or milestone’s completion as you did when originally soliciting the commitment.

Keep in mind that you cannot seek this kind of commitment too often or it will lose its motivational effect. Save it for truly important projects or milestones.

Technology Offense and Defense
You and your staff are continually inundated with announcements of new technologies. Some of them are obviously important, and you must play good offense and investigate, anticipate, and plan for their adoption. One of the biggest motivators for most programmers is the chance to investigate innovation and learn new things. Rewarding staff who are doing excellent work by sending them to a technical conference to report on a new area of technology, or assigning them to investigate a new release of software or survey a breakthrough that you need to consider adopting are great motivators. They will use these brief breaks from their usual tasks to recharge themselves and feel fulfilled. You must ensure that your key contributors have time in their schedules so that you can give them these kinds of rewards. Consider this an important “offensive play” in your management playbook.

However, this sometimes requires a judgment call on your part. All too often many of the new technologies inundating you and your staff are half-baked, unimportant, and will never see commercial success. Any time spent investigating these is time wasted and lost! For such technologies, play strong defense by ensuring that your staff is not seduced by the allure of new “shiny things.”

Understanding Your Programmers’ Motivations Begins on Day One
As Herzberg’s research showed, there are many factors that contribute to job satisfaction and dissatisfaction. But how these factors rank and how important they are to anyone specifically will vary. More than most, programmers are individualists, so it only stands to reason that what motivates each programmer will vary from person to person. One of the first things you should do is try to understand what motivates each one of them.

The mental model we build for each person is mostly a prioritization of the topics in this chapter. By mentally ranking these items for each individual, we can begin to make sure that those most important to each individual are reinforced when they perform in an excellent or outstanding fashion. We think that all these are important, but when you have the opportunity to reward outstanding performance, make sure to address those that will have the most impact on the individual.

There is no magic silver bullet that will allow you to motivate your programming staff. Setting realistic milestones and making sure everyone is working toward these milestones is a good starting place. But it takes continual efforts and personalized attention to make sure your staff is motivated to work hard and meet demanding milestones.

The information presented in this chapter can get you thinking about how best to motivate your staff, but in the end you must think about this over and over and continually work to make sure your staff is motivated every day, week, month, quarter, and year. The age-old adage of getting “all the oars in the water at the same time” is a good one to help you visualize how your motivated technical staff can and should work together as one.