#17: How do you create happy programmers?

Kathy Sierra links to an interview with David Heinemeier Hansson, of 37 Signals, which talks about making programmers happy.

I’ve been studying that for quite a while. I remember back in the 1980s a programmer came into the camera store and was talking to me. He was down on his company (which won’t go named here but it wasn’t GYM). I asked him why he was bummed. He said his company had killed his last few projects. I still remember what he said to me “I am an engineer and I want to work somewhere that puts my work into the hands of customers.”

The guys who stare at a blank black or white screen and start typing and start creating the things we all find magical just want us to see their work in our hands. Is it more complicated than that?

Yeah, it is. :-)

They also want a workplace where merit rules the day and discrimination is not a word that’s heard. They want good tools (you watch a developer’s eyes light up when you setup a high-end computer with dual-screen high res monitors).

Since there’s a lot of developers and their managers who read here, what else do you find makes for happy programmers?

68 thoughts on “#17: How do you create happy programmers?

  1. Here’s another question: how do you make OFFSHORE programmers happy? This one is even tougher, since there is hardly any way to prevent attrition (people going westwards to earn double/triple the money).

  2. Here’s another question: how do you make OFFSHORE programmers happy? This one is even tougher, since there is hardly any way to prevent attrition (people going westwards to earn double/triple the money).

  3. WTF: I’ve been through the training.

    Now, again, in 1999 we weren’t convicted. In 2001 we were.

    So, was our behavior OK in 1999? No.

    There’s no difference. If you have a monopoly you must behave differently than if you don’t. Simple as that.

  4. WTF: I’ve been through the training.

    Now, again, in 1999 we weren’t convicted. In 2001 we were.

    So, was our behavior OK in 1999? No.

    There’s no difference. If you have a monopoly you must behave differently than if you don’t. Simple as that.

  5. > Is there a difference between a convicted one and a non convicted one?

    This question shows that Mr. Scoble has very little knowledge about the laws regarding monopolies. Does Microsoft not provide employees training on this sort of thing? If not, then I wouldn’t be surprised if Microsoft breaks the law again.

  6. > Is there a difference between a convicted one and a non convicted one?

    This question shows that Mr. Scoble has very little knowledge about the laws regarding monopolies. Does Microsoft not provide employees training on this sort of thing? If not, then I wouldn’t be surprised if Microsoft breaks the law again.

  7. Small teams with some autonomy. Having a say in the bigger picture. Abstract stuff like that. Aside from that lofty list, a Starbucks account is very cool also.

  8. Small teams with some autonomy. Having a say in the bigger picture. Abstract stuff like that. Aside from that lofty list, a Starbucks account is very cool also.

  9. i find when that time of year comes around, developers want money. Sure they want other things as well, but screw the money and they’re not happy.

    It’s at that time that they want the boss to be political, because after all, the best politicians bring home more than they contribute.

    The “normal” gear factor is not a big deal. You can outfit a programmer’s seat with typical hardware for a few thousand dollars. It’s usually ridiculous to make a big deal out of this – just watch out for the big dick game that follows.

    The “toys” are another issue. Many of the toys carry recurring service charges – those little service charges add up and catch any CFO and bean counters eye. You better justify that you’re using the flash for business/support out of hours.

    The flexible time is great. But you better put in the hours and deliver the goods. Flex time and slipped commitments do not coexist well.

    The other issue with flexible time is when are you going to have all of that chance collaboration with the wonderful peers? If you’re coming in the door when they go out, where’s the love in that? Too many projects require multichannel communication with multiple groups of people to let anyone work any hour they want. Now, if you want to put in the extra hours on nights and weekends, no problem.

    Maestro, is there an artist in the house? So much software is repetition of some sort. In so many cases, by the time the architecture is done, the design is done, the required use of various corporate standard classes, the third party code, the RFCs compliance, the database stored procedure interfaces, etc etc etc have been gelled for a particular project and it gets into the programmers hands – it better be practically automatic. You have the QA test cases in front of you already. A lot of the behavior is known. If it helps to have soft music and lighting to finish that off, great. But don’t ask for a key to the thermostat.

    Everyone hates documentation, but good documentation and good programming go hand in hand. First, you want recognition — what better way to get it than to write about what you’ve done. Second, what better way to allow somebody elsewhere to review your work to make sure it is adequate quality. Plus, QA has to know what you’ve done – this is a great way to tell them. Want to share your code – document it! Sure, eventually the documentation will help when your work is handed to somebody else, but your withholding documentation isn’t going to save you.

  10. i find when that time of year comes around, developers want money. Sure they want other things as well, but screw the money and they’re not happy.

    It’s at that time that they want the boss to be political, because after all, the best politicians bring home more than they contribute.

    The “normal” gear factor is not a big deal. You can outfit a programmer’s seat with typical hardware for a few thousand dollars. It’s usually ridiculous to make a big deal out of this – just watch out for the big dick game that follows.

    The “toys” are another issue. Many of the toys carry recurring service charges – those little service charges add up and catch any CFO and bean counters eye. You better justify that you’re using the flash for business/support out of hours.

    The flexible time is great. But you better put in the hours and deliver the goods. Flex time and slipped commitments do not coexist well.

    The other issue with flexible time is when are you going to have all of that chance collaboration with the wonderful peers? If you’re coming in the door when they go out, where’s the love in that? Too many projects require multichannel communication with multiple groups of people to let anyone work any hour they want. Now, if you want to put in the extra hours on nights and weekends, no problem.

    Maestro, is there an artist in the house? So much software is repetition of some sort. In so many cases, by the time the architecture is done, the design is done, the required use of various corporate standard classes, the third party code, the RFCs compliance, the database stored procedure interfaces, etc etc etc have been gelled for a particular project and it gets into the programmers hands – it better be practically automatic. You have the QA test cases in front of you already. A lot of the behavior is known. If it helps to have soft music and lighting to finish that off, great. But don’t ask for a key to the thermostat.

    Everyone hates documentation, but good documentation and good programming go hand in hand. First, you want recognition — what better way to get it than to write about what you’ve done. Second, what better way to allow somebody elsewhere to review your work to make sure it is adequate quality. Plus, QA has to know what you’ve done – this is a great way to tell them. Want to share your code – document it! Sure, eventually the documentation will help when your work is handed to somebody else, but your withholding documentation isn’t going to save you.

  11. A boss who doesn’t say: “I need you to tell me what you need.” Whenever I’ve heard that, I’ve thought, “If you were doing your job I wouldn’t have to tell you…”

  12. A boss who doesn’t say: “I need you to tell me what you need.” Whenever I’ve heard that, I’ve thought, “If you were doing your job I wouldn’t have to tell you…”

Comments are closed.