Friday, April 19, 2013

5 Ways to Keep a Software Engineer Happy

One evening, I attended a smaller Java user group. The topic, for once, was nothing technical. Instead, the group organizer stood and said, "Tonight I'd like to try something different. Tonight is going to be an open discussion about what makes us engineers feel happy and appreciated at work."

("Feed them and give them beer," I thought immediately. But as a recruiter, I've learned we're more welcome when we're quiet.)

My mental picture of a developer's ego.

Interestingly, the talk quickly turned to all the things that made the engineers in the group unhappy. One immediately mentioned clueless Project Managers who scheduled added features that were either impossible, or would take far longer than the week the development team was allotted. Another engineer talked about low-level QA work, and someone else one-upped him by mentioning data entry, at which point the entire room audibly gasped.

Even though I contributed nothing to the discussion at the time, I privately like to think I have an idea of how to make software engineers happy. My credibility is twofold: 1) I'm married to one with a pretty typical developer temperament, and I've had plenty of opportunities to make him both happy and unhappy, and 2) much of my job entails listening to the reasons good developers want to leave theirs.* Here, in my humble opinion, is my list of 5 things you can do to keep your most talented developers happy, in order of importance:

1. Make your developers feel valued. This doesn't always mean money, though a fair base salary helps (however, any engineers I've come across who ONLY value money tend to be subpar in either skills or personality. I do not know why this is.). Tell them you appreciate the work they do, sit down with them occasionally and have them explain what they're working on, show them in small ways that you care that they work for you. Maybe you think this is a blanket statement for all employees, and it probably is. But the developers I know tend to be extra-sensitive artistes who want and need to feel the love. Show it, and frequently. In their eyes, they deserve it, because they make all the stuff.

2. Give them a flexible work schedule/ let them work on interesting and challenging problems. It's well-documented that creative intellectuals who are given even a little freedom to experiment are better able to come up with useful solutions. More importantly, good developers become bored more easily. And bored developers leave.

3. When you come to a decision-making impasse, show some respect for logic and reasoning. Most good developers aren't sitting there, trying to figure out the best way to delay a release and undermine profits. They're trying to produce a solid solution as quickly as you are, but if your Lead tells you something (or someone) doesn't make sense, believe them. Or at least, listen. Or at the very least, act like you're listening. Just don't interrupt, and try not to say anything stupid in response--take it from me, the voice of experience.

4. Try to protect them from people of lesser intelligence. This goes hand-in-hand with #3, but if you hire people who aren't savvy enough to be the go-between for the dev team and the business side, you're asking for a lot of ill will in short shrift. Make sure said people are smart, that they have good mediating skills, and that they know how to communicate, because project specs will always be missing key information.

5. Feed them and give them beer. Seriously.




*For the record, my own husband is super happy with his current employer. I guess all it takes for him is working on an awesome product, in an office across the street from his favorite surf break, and a workplace kitchen stocked with bread, peanut butter, and jelly.

No comments:

Post a Comment