Five Keys to Corporate Programmer Happiness
I’ve worked as a programmer and as a manager of programmers for about twelve years now. Many people believe that the key to productivity is content employees, and I tend to agree with that too. Here are some low-cost ideas for things which either make me happier, or make the programmers on my team happier.
1.) Allow time for side-projects related to the business. I think this item is critically important! Any programmer worth his or her salt will look at the way that things are done, and think of ways that it could be done better. The problem is that we’re usually so immersed in core business needs that we don’t have an opportunity to improve the systems that are already in place. These improvements might be a new development tool, refactoring an existing code base, evaluating a new library or language, or adding a nifty feature to an existing product. I’ve seen lots of great things come out of this “play time,” and as a manager I tried (with limited success) to set aside specific time on Friday afternoons for these pursuits. In the end, the product gets better in unexpected ways, and the programmers have fun, so everybody wins!
2.) Start a Peer Recognition Program. This one will seem a little silly to people at first, and it will undoubtedly be a source of endless office jokes. But a lot of people do respond to peer recognition; setup an internal website where employees can recognize their colleagues for a job well done. And it’s even better to sweeten the pot by giving out small prizes, like gift certificates, to participants chosen at random. Programmers don’t get (or give) a lot of kudos from (or to) each other, and this helps grease the wheels.
3.) Send Programmers to Training or Trade Shows. It’s especially nice if you can afford to send programmers on a junket somewhere for their training. It doesn’t need to be glamorous! Take someone who lives in New England; A week in Pittsburgh, away from the grind of the daily work cycle, in a new place, going out to eat on the company dime and meeting other similarly-minded folks, can be a blast, and (best of all) can re-energize the creative drive. If you can’t afford to send the developers on trips, then a day or two off at a local course is great, too. Make sure the training is for something that a developer might be interested in – new and interesting stuff is good, COBOL optimization techniques maybe not so much.
4.) Socialize. Believe it or not, not every programmer is a daylight-hating, mumbling, uncomfortable Asperger’s poster-child. Go out some night after work for a few beers. It’s also good to bring some non-programmers from the business along. Day in and day out, we tend to become e-mail addresses or IM nicks to each other. We forget that we’re all human beings suffering in the same cubicle hell until we can get home and get on with our real lives. Getting together outside the office, for fun, reminds us who we actually are. If you and Alice-from-Accounting talk about the aging Tim Wakefield’s potential (or lack thereof) as a Red Sox pitcher for another season over a beer, then dealing with her I.T. problem the next day will seem like less of a chore, and more like helping out a friend.
5.) Cut down on the paperwork. In a SAS70/ISO/SarBox world, a certain amount of due process is unavoidable. The larger a company (and its coffers) get, the more signatures and sign-offs are needed to do anything. Try to set up your organization so that programmers can focus on programming. Programmers are excited by problem solving, and making things more efficient. We like faster, smaller, better; that’s what we do, it’s what we’re good at. Paperwork and process are the antithesis of those things. I’m not saying that you shouldn’t design software carefully and deliberately, but if you’re spending more time in conference calls reviewing documentation than writing code, you’re probably not a happy programmer.
I’m sure there are things that I’ve missed, and I’m sure this list doesn’t apply to everyone, but these are the things that have worked for me and a lot of the people I’ve worked with. Hope it helps!


March 20th, 2008 at 4:09 pm
Love what you have to say here
your background is making me dizzy though
March 20th, 2008 at 4:10 pm
Step zero: Don’t work for non-programmers
Seriously, companies that don’t have a 100% understanding of how to handle programmers should outsource to those that do.
March 23rd, 2008 at 12:14 am
Wow…I think it’s ideas like this that give developers a poor image. I’m sure these 5 suggestions don’t work for everyone. The trick is to identify what motivates each individual and use that to motivate them if it makes sense. If developers want to keep software jobs in the US, they need to know that the business isn’t there to serve developers, but developers are there to serve the business. If the money and the work isn’t enough to motivate developers, they are clueless about how good they have it.
March 23rd, 2008 at 5:29 am
@Anonynous – I agree, and I didn’t mean to imply that this list was an itemization of “demands”! It’s merely a bunch of ideas that I had which have worked for me and my colleagues in the past, and nothing more. Believe it or not, there are some programmers who aren’t *that* motivated, on a day-to-day basis, by money. And there are programming shops that have trouble with attrition even though they pay fairly. Maybe these ideas will help, maybe not, but I thought it wouldn’t hurt to offer them!
March 23rd, 2008 at 9:53 am
There’s something about these recommendations that make me feel that some programmers are out of touch with what it means to work for an employer who is paying you good money to do a job. Now of course, it’s the employers responsibility to make working conditions attractive to find and retain good people, plus it’s good for business, but good working conditions aren’t the same as motivation. Motivation is primarly the responsibility of the employee. Once you accept the job, you agree to do what the employer needs you to do for the company to be successful at the pay you agreed to. If you have any doubt what that means, make believe you own a small company and the revenue is barely enough to give you an income to pay your own bills. Would you be sending people on junkets to motivate them? Would you have programmers doing work that isn’t vital to the current revenue commitments to the business to motivate them? I think the only one of your 5 recommendations I agree with is to socialize, but that’s less about motivation than it is about creating a pleasant work environment. If you think the only reason the answer to those questions is no is because the company has an inadequate revenue stream, you’d be wrong. My best employees and my most motivated employees are the ones who understand what the employer/employee relationship is all about. They understand that motivation is their responsibility and no one elses, and they come to work everyday thinking about how they can make their employers successful because they know their own success is tied to the success of their employers. Their emphasis is what they can do to make their employer more successful, not what the employer can do to make them more happy and motivate.
There are many reasons for unmotivated employees. Sometimes the work environment contributes to that or the work itself, but many times, this is a problem of the employee being in the wrong line of work, a maturation issue, or some other influences (relationship, money, mental illness, etc…). Applying any of those 5 recommendations to cure those motivation issues never helps.