Last Updated: 24 May 2008
Tips for Keeping Developers Happy
Developers can be a fickle bunch. Keeping folks happy and working toward a common goal has often been likened to 'herding cats'.
If you’re a manager of programmers, here are some tips on keeping your charges happy and productive.
- Handle distractions yourself, or get someone else to handle them. Distractions can be anything from the chair not fitting properly to the server going down to a vendor calling to try to sell your company something. Don’t make the programmers worry about these things… It isn’t conducive to getting good work done.
When a developer is coding, he’s usually got a million little balls floating around in his head: I need to make function
foo()return an array, not an int, and I need to write an overloaded operator for
bar()to make it handle that funny case from
baz(), and I need to find out why
raz()sometimes returns a negative value and why
jar()doesn’t count things properly. And I have to remember than I can’t fix
raz(), or else my array size might be negative, and I really need to find a screw to get this damn keyboard shelf fixed so I can type properly.
If you can fix the keyboard shelf for them, you’re one step ahead of the game.
- If you really want to get ahead of the game (two steps, perhaps!), establish a trouble-ticket system for distractions. I’ve only seen one company that has done this, but it was a great idea. You’ve probably got all the resources you need already… trouble ticket software in house and somebody who knows how to set it up. You just need to train the admin staff on how to use it. With that, when your programmers needed something, like somebody to find a screw to fix that damn keyboard shelf, you just put the request in the ticket system and it auto-magically appears.
- Encourage social interaction. Programmers are notoriously shy, often somewhat anti-social creatures. Try to offer non-work activities that they can use to interact with each other, their managers, and others from within the company. What you do depends on where you are located, but it might be a ball game, a trip to the local pub, a museum, a restaurant, or an Oxygen Bar (this one seems to be unique to LA).
The point is to get people out and doing things, not related to work. Sure, they’ll probably talk about computers 95% of the time, and work 94.5% of the time, but they’ll build friendships that make them more loyal to each other and to the company. Google does this to the extreme, when they invade Squaw Valley with the annual Google Ski Trip, but you can start small.
Doing these sorts of things has the additional benefit of making people all the more willing to pull through for each other in a crunch, or when one of them has a personal emergency. Of course, fair warning: if the rest of your work environment sucks, it can also make all of them that much more likely to follow the leader if one of them jumps ship for a rival firm.
- Allow non-work time during working hours and make it fun. This is where you need to buy a foosball table, or perhaps a video game system. Give them an area to blow off steam – in addition to de-stressing, this will help them be comfortable staying at work, since they won’t necessarily have to run home during those ‘I’ve gotta get outta here’ moments. Despite the predominance of telecommuting, I’m a firm believer that programmers are more productive at the office, away from the distractions of the TV, making dinner, changing the diapers on the new baby, and the like.
There are two keys here:
- Make the rec room truly fun. What fun means depends on your company, but make sure what you’ve got in there are truly things people want to do.
- Make sure everyone knows its OK to play games once in a while. Don’t give people nasty ‘shouldn’t you be working?' looks when you walk by the rec room and see them goofing off at 2pm. Maybe you should even pop in and join them for a game. They’ll respect you all the more if you can kick their ass in Mario Kart.
- Finally, do your best to make them want to be at work. Try to make work so interesting and challenging that they don’t want to go home. For the most part, programmers love good intellectual challenges, and if you can provide that you’ll again be ahead of the game.
Of course, this is a little easier if you’re building the next Google as opposed to integrating the backend billing processes of Global Amalgamated Worldwide Design and OmniCom International, but do what you can with what you have. If you can outsource the boring parts, or maybe get somebody else’s team to do them, so much the better.
These are just a few general points on keeping your charges types happy. I’d love to hear your thoughts.