#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?

Comments

  1. Anonymous: oh, really? Seems that a lot of the developers I met who built this company are perfectly happy with being freaking rich now.

    And, there are other monopolies being built right now. Is there a difference between a convicted one and a non convicted one? So, you would have been perfectly happy working at Microsoft until 1990? Gotcha.

    By the way, I find it interesting that you posted anonymously. Are you paid by a Microsoft competitor? How would we know? Sounds like you’re a pretty bitter person. Must not be appreciated by your current management.

  2. Anonymous: oh, really? Seems that a lot of the developers I met who built this company are perfectly happy with being freaking rich now.

    And, there are other monopolies being built right now. Is there a difference between a convicted one and a non convicted one? So, you would have been perfectly happy working at Microsoft until 1990? Gotcha.

    By the way, I find it interesting that you posted anonymously. Are you paid by a Microsoft competitor? How would we know? Sounds like you’re a pretty bitter person. Must not be appreciated by your current management.

  3. ““what else do you find makes for happy programmers?”

    Not working for a convicted monopolist. ”
    Troll +1

    Anyhow, for me, a good work environment is:
    - Good coworkers (working with conniving twits is bad)
    - Cool technology (COBOL programming, how boring!)
    - Good pay/benefits
    - Flexible (casual dress, work hours are whenever)
    - and so on…

    Pretty hard to find, I’m sure. I can settle for less though.

  4. ““what else do you find makes for happy programmers?”

    Not working for a convicted monopolist. ”
    Troll +1

    Anyhow, for me, a good work environment is:
    - Good coworkers (working with conniving twits is bad)
    - Cool technology (COBOL programming, how boring!)
    - Good pay/benefits
    - Flexible (casual dress, work hours are whenever)
    - and so on…

    Pretty hard to find, I’m sure. I can settle for less though.

  5. There is a difference between a convicted monopolist and non convicted monopolist. A non convicted monopolist is either not doing anything illegal (it’s not illegal to be a monopolist) or it has not been caught yet.

    It seems like Microsoft is into everything these days. It’s more likely than not that the anonymous poster works for a Microsoft competitor :-)

    Legal or not, Microsoft’s monopoly has made many programmers rich and happy. The anonymous poster is very wrong about this.

  6. There is a difference between a convicted monopolist and non convicted monopolist. A non convicted monopolist is either not doing anything illegal (it’s not illegal to be a monopolist) or it has not been caught yet.

    It seems like Microsoft is into everything these days. It’s more likely than not that the anonymous poster works for a Microsoft competitor :-)

    Legal or not, Microsoft’s monopoly has made many programmers rich and happy. The anonymous poster is very wrong about this.

  7. I should mention:
    For me, the feeling that I made a difference is pretty big. When I push code out to users and make waves and get recognized for it, it is great.

  8. I should mention:
    For me, the feeling that I made a difference is pretty big. When I push code out to users and make waves and get recognized for it, it is great.

  9. 2 years ago, I would have said “working with fine coworkers ; thin mid-management” things like that. But I have seen the company open new dev sites around the world, and they have taken that to the extreme : from GMT-8 to GMT+8, with some in the middle. Guess what happened, if you’d like to talk to coworkers on other dev sites, you now have to come much earlier in the morning, and go home much later in the day. Needless to say, now my only priority is to be able to work normal hours. And that’s a very healthy one I can tell.

  10. 2 years ago, I would have said “working with fine coworkers ; thin mid-management” things like that. But I have seen the company open new dev sites around the world, and they have taken that to the extreme : from GMT-8 to GMT+8, with some in the middle. Guess what happened, if you’d like to talk to coworkers on other dev sites, you now have to come much earlier in the morning, and go home much later in the day. Needless to say, now my only priority is to be able to work normal hours. And that’s a very healthy one I can tell.

  11. I will just sum it to:
    1. Meaningful + useful work.
    2. Pay incentive.
    3. Flexibility.
    4. Working Enviroment.
    et al…

    list goes on..
    pretty hard to find everything but atleast few of them are necessary :) !

  12. I will just sum it to:
    1. Meaningful + useful work.
    2. Pay incentive.
    3. Flexibility.
    4. Working Enviroment.
    et al…

    list goes on..
    pretty hard to find everything but atleast few of them are necessary :) !

  13. I can bet Scoble’s hands are itching right now…GYM GYM GYM…to be fair nothing huge has been announced today…there are rumors that Microsoft might host its CRM solution along with its partners ala Salesforce.com
    …nthing to write home about…

    my best is that as soon as smth cool related to GYM comes along, and Scoble’s around the 70 post mark, we’ll see rapid posting on the blog :)

    it works out well for us anyway :)

  14. I can bet Scoble’s hands are itching right now…GYM GYM GYM…to be fair nothing huge has been announced today…there are rumors that Microsoft might host its CRM solution along with its partners ala Salesforce.com
    …nthing to write home about…

    my best is that as soon as smth cool related to GYM comes along, and Scoble’s around the 70 post mark, we’ll see rapid posting on the blog :)

    it works out well for us anyway :)

  15. oh on the topic:

    i worked at GSK on an internship and I was a programmer there…the one thing I valued more than anything was that although I was the only technical guy (computers wise) in the department, I never got stick for something that only other programmer can understand e.g. if they wanted something and I told them that it’ll have to be done in some way to fit in the timeframe etc etc…they deeply respected my expertise and I loved that…

    Also, my manager there was less of a manger and more of a mentor…just loved that guy…I guess mentorship would be a huge thing for programmers working for tech. or non-tech companies in the computer industry…

    We also had unlimited snacks and drinks…another plus I guess :)

  16. oh on the topic:

    i worked at GSK on an internship and I was a programmer there…the one thing I valued more than anything was that although I was the only technical guy (computers wise) in the department, I never got stick for something that only other programmer can understand e.g. if they wanted something and I told them that it’ll have to be done in some way to fit in the timeframe etc etc…they deeply respected my expertise and I loved that…

    Also, my manager there was less of a manger and more of a mentor…just loved that guy…I guess mentorship would be a huge thing for programmers working for tech. or non-tech companies in the computer industry…

    We also had unlimited snacks and drinks…another plus I guess :)

  17. - Meaningful, challenging projects (so you dont feel like you’ll be replaced with a very simple script in a few months :)
    - Some time and space for little researches and innovation (so you dont have unrealistic deadlines that you can only achieve by copying pasting your old code)
    - Good hardware, software and friendly community

  18. - Meaningful, challenging projects (so you dont feel like you’ll be replaced with a very simple script in a few months :)
    - Some time and space for little researches and innovation (so you dont have unrealistic deadlines that you can only achieve by copying pasting your old code)
    - Good hardware, software and friendly community

  19. Take a look at open source

    Opensource developers are happy because they are working on the things they get off on. Many are hacking away using an old laptop and Vim/Emacs, Not a glossy IDE or expensive dual screens. I would say the Opensource developers are probably some of the happiest developers, but perhaps not in their day jobs!

    There is a lot to take from that me thinks, I also think what google do with their 20% free time on the devs own project ideas is probably very similar in effect to the opensource devs. It also benefits google of course.

    Here are some the things I have come a cross in Opensource that developers really like :

    1) Scratching your own itch or working on the bits your into.
    2) Working with really great coders seeing and feeling their code (the mentor angle)!!
    3) Feeling part of something good.
    4) Freedom as in choice

    Just my humble $0.02

  20. Take a look at open source

    Opensource developers are happy because they are working on the things they get off on. Many are hacking away using an old laptop and Vim/Emacs, Not a glossy IDE or expensive dual screens. I would say the Opensource developers are probably some of the happiest developers, but perhaps not in their day jobs!

    There is a lot to take from that me thinks, I also think what google do with their 20% free time on the devs own project ideas is probably very similar in effect to the opensource devs. It also benefits google of course.

    Here are some the things I have come a cross in Opensource that developers really like :

    1) Scratching your own itch or working on the bits your into.
    2) Working with really great coders seeing and feeling their code (the mentor angle)!!
    3) Feeling part of something good.
    4) Freedom as in choice

    Just my humble $0.02

  21. Programmers rarely build the same thing twice (unless they are refactoring) so what they do is creative. It involves thinking, musing, pondering. Trying. Experimenting.

    Can you sit an artist, poet, screen writer or potter down from 8:00am to 4:30pm and ask them to create stuff on demand? Yes. But it’ll be a bit crap.

    Why not tell a musician that he’ll get paid 20K a year then see whether he writes a hit song or not. No. Because you have just beaten all entheusiasm out of him. He will not care.

    monk.e.boy

  22. Programmers rarely build the same thing twice (unless they are refactoring) so what they do is creative. It involves thinking, musing, pondering. Trying. Experimenting.

    Can you sit an artist, poet, screen writer or potter down from 8:00am to 4:30pm and ask them to create stuff on demand? Yes. But it’ll be a bit crap.

    Why not tell a musician that he’ll get paid 20K a year then see whether he writes a hit song or not. No. Because you have just beaten all entheusiasm out of him. He will not care.

    monk.e.boy

  23. Hmm.. there’s only one thing I miss in the whole story: Female human beings (good-looking is a condition).

    For the rest, damm, I’m that happy programmer, w00t.

  24. Hmm.. there’s only one thing I miss in the whole story: Female human beings (good-looking is a condition).

    For the rest, damm, I’m that happy programmer, w00t.

  25. well msft is a convicted monopolist..He isn’t trolling, its fact..or are we too fast to forget the facts?

  26. well msft is a convicted monopolist..He isn’t trolling, its fact..or are we too fast to forget the facts?

  27. 1) Having someone (boss) who actually listens to ideas.
    2) Cool toys (new software, hardware, gadgets_
    3) flexible hours
    4) casual environment
    5) Quiet office
    6) True peers to work with (running solo isn’t that much fun)

    As to #6. Ever try to have a real geek conversation with non-geeks about geek things? doesn’t happen. Their eyes go blank and they collapse. Without real peers to work with, I find myself going nuts sometimes (or posting comments to Scoble’s blog).

  28. 1) Having someone (boss) who actually listens to ideas.
    2) Cool toys (new software, hardware, gadgets_
    3) flexible hours
    4) casual environment
    5) Quiet office
    6) True peers to work with (running solo isn’t that much fun)

    As to #6. Ever try to have a real geek conversation with non-geeks about geek things? doesn’t happen. Their eyes go blank and they collapse. Without real peers to work with, I find myself going nuts sometimes (or posting comments to Scoble’s blog).

  29. well scoble you forget that IBM made MSFT, msft isn’t filled with revolutionary ideas. well vs2005 is good but wouldn’t be surprised. pour more money = better marketed product.

  30. well scoble you forget that IBM made MSFT, msft isn’t filled with revolutionary ideas. well vs2005 is good but wouldn’t be surprised. pour more money = better marketed product.

  31. Here are my top items that make programmers happy.

    1) A challenge
    2) A good team without much negativity
    3) Recognition
    4) Delivering software that will be used
    5) A comfortable environment
    6) Good tools

  32. Here are my top items that make programmers happy.

    1) A challenge
    2) A good team without much negativity
    3) Recognition
    4) Delivering software that will be used
    5) A comfortable environment
    6) Good tools

  33. Peopleware, baby. Keeping programmers happy is not a vague unknown — lots of people have done it, not least the folks at those currently unmentionable capital letters.

    Programmers want to write code that matters, for managers who get it. For many developers, that means finding more satisfaction in a struggling startup (where developers populate all of the layers above you) than in a large organization where management is more diverse, regardless of the other perks of a big organization.

  34. Peopleware, baby. Keeping programmers happy is not a vague unknown — lots of people have done it, not least the folks at those currently unmentionable capital letters.

    Programmers want to write code that matters, for managers who get it. For many developers, that means finding more satisfaction in a struggling startup (where developers populate all of the layers above you) than in a large organization where management is more diverse, regardless of the other perks of a big organization.

  35. I like a good solid management team, one that can plant a flag on a hill and say “I’ll meet you there in 6 months, heres a map”. Bad management can lead to an easter egg sort of development process…”I have a bunch of requirements out there…somewhere, go get em”. If you know what you want, I can deliver it. if you just want “software”, go get someone else.

    That, dual monitors, and a ton of Diet Coke, and you have a happy dev on your hands.

  36. I like a good solid management team, one that can plant a flag on a hill and say “I’ll meet you there in 6 months, heres a map”. Bad management can lead to an easter egg sort of development process…”I have a bunch of requirements out there…somewhere, go get em”. If you know what you want, I can deliver it. if you just want “software”, go get someone else.

    That, dual monitors, and a ton of Diet Coke, and you have a happy dev on your hands.

  37. Happiness is also left in the absence of factors that create unhappiness for programmers:
    • Politics
    • Meetings
    • Documentation requirements
    • Course changes
    • Rules and regulations covering how they work

  38. Happiness is also left in the absence of factors that create unhappiness for programmers:
    • Politics
    • Meetings
    • Documentation requirements
    • Course changes
    • Rules and regulations covering how they work

  39. Adequate compensation.

    Just because some guy can live like a king on 30k in India doesn’t mean I can in Redmond. If you want me to compete on purely dollars/work unit, then you also need to free me up to work anywhere I want (and I’ll beat the Indian guy’s price from Thailand or somewhere).

    But the playing field isn’t level, it costs you something to have the guy halfway around the world and its a cost companies are not willing to make for US talent (I have no idea why this is so).

  40. Adequate compensation.

    Just because some guy can live like a king on 30k in India doesn’t mean I can in Redmond. If you want me to compete on purely dollars/work unit, then you also need to free me up to work anywhere I want (and I’ll beat the Indian guy’s price from Thailand or somewhere).

    But the playing field isn’t level, it costs you something to have the guy halfway around the world and its a cost companies are not willing to make for US talent (I have no idea why this is so).

  41. 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…”

  42. 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…”

  43. 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.

  44. 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.

  45. 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.

  46. 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.

  47. Riya, Google, Innovation & Tech Value

    Well the rumour is that Google is going to buy Riya (the face photo searching company), for something like $40M. Is it true? No idea. If it is, it’s pretty interesting. It’s been obvious for a long time that extracting semantic meanin…

  48. > 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.

  49. > 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.

  50. 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.

  51. 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.

  52. 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).

  53. 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).