Putting Theory into Practice
Understanding that job satisfaction and dissatisfaction come from different factors are important messages that set up the rest of this chapter. Putting theory into practice is always where the rubber hits the road.

The rest of this chapter discusses the tactics we employ to address those causes of satisfaction and dissatisfaction that we, as programming managers, can impact. We start with the basic foundational factors that you need to get right before you can even begin to motivate your staff. These match closely to the top seven causes of dissatisfaction (when lacking) that we have adapted to programmers from Hertzberg’s work:
• Respect for supervisor
• Having fun
• Learning and growing
• Good working conditions
• Sane company policies and administration
• Ethical management
• Fair compensation

We then continue with the most important motivating factors, which also match closely to the top six motivational factors that we adapted to programmers from Hertzberg’s work:
• Making a difference in the world
• Learning and growing
• Toys and technology
• Recognition and praise
• Having fun with your staff
• Upside

Use all of these to help get you and your team working to peak productivity and motivated to make outstanding contributions.

Foundational Factors—Causes of Dissatisfaction (When Lacking)
Work hard to make sure you provide all of the foundational factors, or you will find your staff dissatisfied. While similar to motivational factors (in fact, some are the same, with different emphasis), foundational factors are essential to provide before you can begin to motivate your staff. As shown in Figure 7.4, the foundational factors are just that—they’re the foundation you need to make sure is in place.

Respected as Supervisor
You earn the respect of your staff as their supervisor in many ways. The techniques that follow are ones that we have seen work for ourselves and others.
• Gain technical respect
• Respect others
• Establish your culture
• Lead by example
• Help solve technical problems
• Manage and coach
  Manager: a person who controls and manipulates resources and expenditures
  Coach: a person who gives instruction or advice to others
• Focus on your people
Your job as a manager is to never overlook your people and always make them the first priority.

Having Fun
It is important to allow play into your workplace if you expect your staff to work hard. If you think of play as “unprofessional,” rethink.

Play helps make the hard work worthwhile and possible. You cannot expect people to work hard all the time. Providing escape valves will pay big dividends. The key is to find ways to encourage your staff to work hard and play hard.

Learning and Growing
Because programmers are not primarily motivated by compensation (or “not coin-operated,” as we have heard it said), providing an atmosphere of learning and opportunities to grow is exceedingly important. Strive to provide access to technical training (on- or off-site), presentations about new technical developments, new development technologies, and other learning opportunities. If you are budget challenged and cannot provide formal training to all of your staff, you should still bring in vendors and peers to present new products or industry developments.