A Few Thoughts re: Motivating Software Developers

Developers_fourDo you enjoy corporate rah-rah meetings? You know, where somebody from management gets up and talks about how great everything is in order to keep workers enthused and to slow the stream of outbound resumes. On the few times I've had to present some bit of information at this kind of event, all I could think about were the people in the audience who despised this kind of organizational pep rally and felt that nothing you could say could be even remotely something they'd care about. That's the kind of person I'm talking about today.

You know this person: Super-smart, hard-working, dedicated, really good at what s/he does, a crack problem solver, doesn't need babysitting, has lots of ideas, keeps the skill-set up, might seem a little goofy but takes the work very, very seriously. Maybe not Miss Congeniality but someone who routinely adds value to the work and contributes to the company's success and is known as someone you want to keep around.

You probably don't need a Harvard study to tell you that happy employees are usually productive employees, but here's a Harvard study that claims to prove that. The authors of "Creating Sustainable Performance" report: "Happy employees produce more than unhappy ones over the long term. They routinely show up at work, they’re less likely to quit, they go above and beyond the call of duty, and they attract people who are just as committed to the job."

So, how do you keep them happy and engaged? Some people, all it takes is the promise of pizza. Buying dinner for the crew that stays late not only helps solve the young worker's food budget problem, it can also foster team-ness. Because most people like to be given things, things can motivate. Some workers prize the company shirt, or a free dinner out, or a gym membership, or the complete works of Jean-Claude Van Damme.

But the thing about the really prize employees, the golden boys and girls, the ones you've invested in and without whom you'd be less of a software company, is that things don't really do it for them. That might work with some junior staffers, but when you're talking about the ones who are really masters of their craft, objects, no matter how shiny, don't mean much to them. If they want the Van Damme masterworks, they'll go buy them. Of course, that's not to say that a quality, competitive salary is not important.

Having worked with many developers over the years, even trying to manage a few cranky ones, and gleaning the online wisdom of real experts, here are just a few ways to keep the most valuable coders happily developing:

Trust. This might be the most significant thing a manager can do for software developers on-staff. Good developers take pride in their work, and they do not want to be treated as if you think that given the chance, they'd spend all day in the game room or reading blogs or designing their own Android app (Angry Nerds?) on company time.

Let them be proud of what they do. As one database programmer quoted by CIO magazine said: "I want my IT manager to understand that I care about the quality of my work. . . . Nothing frustrates me more than having to do a shoddy job or compromise quality."

Let them learn mastery. As Malcolm Gladwell theorizes in Outliers, The Beatles became a great band by playing in the clubs of Hamburg enough to meet the "10,000 hour rule," which says that Beatles-level success comes only to those who practice a task for that considerable amount of time. A real artisan is a master of his or her craft. Give developers the time and opportunity to practice, practice, practice their most advanced skills. Let them master a niche. Specialization is the future of IT services.

But don't coddle them. Let them know you expect them to be The Beatles, pushing them while giving them the room to improve. Trial by fire is fine. The real developer loves knowing that the boss thinks he can't do something. Talk about motivating. It's a cliche to say that an ace developer loves a challenge, but an ace developer loves a challenge, especially if it allows for a chance to show the boss a thing or two.

Give them time to think. The best developers are of course problem solvers. That's who you want around. But problem solving takes time, thought time. Deadlines are a fact of life that cannot be ignored, so the schedule has to allow developers some space to contemplate. This doesn't mean they're sitting around doing nothing, but making sure they have time to just think is a luxury that will keep a prized programmer happy.

Treat them like they're part of what's going on. Fill them in on details of a project, the realities of the situation, any potential glitches, conflicting priorities, the schedule, and what it all means for their time and priorities. Being able to see the big picture makes someone feel like a part of the big picture.

Innovate. This comes from a genuine developer, Donald Jackson: "Nobody who is passionate about technology wants to do the same thing for three years. They want to do new things; use new tools; use new technology and generally-speaking, innovate. This is not always an easy goal to achieve, but if followed out, it will serve two purposes. Not only will the developers be more satisfied with and excited about their day-to-day work, but innovation will also open up new revenue streams within a business."

It's from a piece he wrote called "How to Motivate Software Developers." He quickly makes some excellent points, knows of what he speaks, and plus the post is illustrated by a photo from the classic workplace movie and epic reflection on motivation, Office Space.

While you might look at Mr. Jackson's photo and think he is kind of young to be dispensing wisdom, okay. Instead, take a look at his bio; it includes an important clue as to what developers want: He says that after working for a few software companies, "I then realized the only way I could be satisfied with my career would be if I had complete control over what I was doing." So, he started his own software outfit.

Now, in the confines of a professional software company, it's not always practical to give a developer "complete control." You can't usually run a business like a hippie commune where everyone gets a say as to how tall the maypole will be. But you can certainly give him or her complete control of a project. A senior developer who has demonstrated he or she can get things done without being handheld deserves the chance to run something. And if mistakes happen... well, even scientific research, if you believe that sort of thing, agrees it's one way to learn.

Motivation is more important than ever in this time of high expectations on the job, so we'll talk more about it later. The real trick is to decipher each person's motivator. Maybe a pair of tickets to a concert or game is the best way to tell one kind of developer "We appreciate what you do." But chances are most higher-level and creative developers are going to need something less tangible. Whatever it is, you have to find it and ignite that response that says "I want to work hard and do the best I can for my crew, this company, and our customers."