{ on programming and the internets }


by Louis Brandy

Demotivating a (Good) Programmer

(note: based on a true story, but not mine)

Let’s say you are a boss of some developers. And you’ve got this one guy who is way too motivated. He is making everyone else look bad. You want to force him to quit. I have no idea why you’d want to get rid of your one motivated good programmer, but you boss-type guys pull this kind of crazy stuff all the time, right? Anyway, let me explain how you, the boss, can suck the ever-loving life from this programmer and make him hate his job.

Things That Won’t Work

Money

If a programmer really enjoys what he’s doing, he’s going to overlook the money. It’s true. Good programmers aren’t motivated by the money. They’d always take a cool job working on cool things over some percentage points worth of money (not to be confused with huge piles of cash). A smart programmer will know he’s underpaid, after awhile he’ll make his monetary demands known. This potential discontent, though, won’t effect his performance. Eventually, if you keep refusing, he might get the point and leave. But he’ll leave sad. Because he liked this job. At any rate, this method takes way too long (several years, probably) and can fail way too easily.

Acclaim

If you usually give verbal kudos to your good employees, and you suddenly cut him off, he probably won’t notice. Here’s the thing about really motivated programmers, they aren’t really listening in that meeting with you. They don’t much care for the meeting, in the first place. Having a lot more meetings, though, might work. But everyone will hate that. Probably not a wise idea. They know meetings are a necessity. It’s the price of doing business. They just want to get out and go back to doing whatever cool thing they were working on.

Equipment

If he’s using a 16-inch monitor and a 5 year old keyboard, that will probably make him miserable, right? Of course not. If he loves his job, he’ll bring in two $100 monitors and his own keyboard. That’s a tiny price to pay for a cool job, working on cool things.

Chefs, Bean bag chairs, XBox360, Ping Pong

If you cut off the chef food or the Guitar Hero lounge, he won’t mind. I promise. The highly motivated people don’t come to work to play xbox. They can do that at home. There’s something there worth doing and they want to do it. In fact, removing these things will probably annoy the lesser motivated people more.

The Secret

If you hadn’t noticed the foreshadowing above, consider this your executive summary: he is motivated because he likes the actual work. That’s the Achilles heel. Now, before you think you’ve got this problem solved, let me explain to you the secret to the secret: what he thinks is cool is almost beyond your comprehension. Smart people have a way of turning even the most seemingly mundane problems into something that is fun to work on. You could switch him into regression testing, and it might make him happier. Why? Because you have absolutely no idea what constitutes fun for a computer programmer.

The Secret to the Secret

Developers hate three things, above all else, in increasing order of painfulness…

  1. Working on stuff that is easy
  2. Working on stuff that is tangential
  3. Working on stuff that no one will use

These are the three deadliest of deadly sins in the development world. Especially number three. Nothing will suck the life out of programmer faster than working on something he is certain no one will ever use.

These three form our process for crushing any programmer into oblivion. Switch him into a project that is highly tangential to the core product and that is almost certainly used by no one. Or, better yet, have him work on an internal application. That way you can ensure no one will use it. But, you may say, he may still find it fun. You are right, he might. At first. He’s going to squeeze whatever hard problems are hiding inside his new project out. He’s going to architect a solution and be really proud of it. Just pat him on the head, and keep requesting minor features. Once he’s exhausted the supply of difficult problems, he’ll choke on the never ending monotony of it.

And if, by chance, you are a boss interested in motivating your smart programmers, perhaps there’s a lesson here, too. High salaries are nice. So are bean bag chairs. So are dual monitors and offices with closable doors. These things are ephemeral, though. If you don’t have him working on the core functionality of your product, with tons of users, and an endless supply of difficult problems, all of the games of ping pong in the world won’t help.

So next time you want to try to emulate Google’s environment, ask yourself what really is the environment? Is it really the techno-colored bean bag chairs?

trackback

54 Responses to “Demotivating a (Good) Programmer”

  1. October 6th, 2008 at 10:09 am

    n/a says:

    I’ll give you another two demotivating factors: not having time to do things properly and having dumb co-workers that are not on the edge of things.

  2. October 6th, 2008 at 10:30 am

    bob-ak.com » Blog Archive » Demotivating a (Good) Programmer says:

    [...] made in this article. If you’re a programmer and love/hate your job, read the full post here. From lbrandy.com Posted by bobak Filed in [...]

  3. October 6th, 2008 at 11:10 am

    aApe says:

    the Florida Department of Financial Services is well aware of the secret (though, for good measure, they also do the things that don’t work, and throw in a bunch of micromanagement, scads of paperwork, and about fifteen layers of middle management to extra doubly sure)

  4. October 6th, 2008 at 11:42 am

    Josh says:

    Here’s a good one. Not giving them ANYTHING to do, and not letting them do ANYTHING.

    Better yet, giving your programmer something to do, but before you have given out enough specifics to start working on it, giving them something ELSE with no specifics.

    Rinse and repeat.

    GAH!

  5. October 6th, 2008 at 12:00 pm

    SERIOUS BUSINESSEER says:

    Not really spot on, because you stress the point that makes no sense.

    “Working on stuff that no one will use”

    Lest it be known to you, us enthusiastic programmers love working on anything that gives us the freedom to invent — I don’t give a rats if anyone will ever use it, heck, even I probably won’t — but it was fun developing.

    I have to contradict you hard here. Most development projects never go 1.0 because authors abandon them when they feel their learning from said project has been zapped; they can no longer gain any new insight into life from this piece of abstract machinery.

  6. October 6th, 2008 at 12:07 pm

    louis says:

    @serious,

    You actually make a good point but I think we are talking about different things.. and agreeing more than we disagree. There are different reasons people work on certain projects. If you are working things on your own time, for the sake of learning, I can certainly see quitting when the learning is done. However, when you work for a business, you aren’t working on something for purely the learning aspect.

    In a very real sense, your example and mine are pretty much saying the same things. The newness and coolness factor of any project is about solving the inner hard problems (this is the learning part). Once that wears off, its the users and the critical-ness of the code that keep it entertaining. They supply you with the stream of hard problems that keep you motivated. This is where business applications (and open-source applications) graduate into that second phase where the programmers are motivated by their users more than by the original technical challenges of the problem (and, hopefully, the user demands keep leading you to ever more entertaining problems to work on).

  7. October 6th, 2008 at 12:51 pm

    webdtc says:

    I am probably not one of those good programmers. The things that would make me demotivated are quite different.

    Put me under a manager I don’t like and I’ll be demotivated.
    - Have a manager who micromanages everything
    - Have a manager who thinks he’s a programmer (or was once a programmer and thinks he still can program)
    - Have a manager who creates deadlines and estimates without asking the programmers. You can do this CRM in about a week right?
    - Change requirements frequently and without notice and don’t adjust the schedule

    Even if a programmer loves his job if the environment is not good they will leave. Especially the good ones because they know they can get a job somewhere else.

    For me work is a lot about the people. If I don’t like the people I work with I won’t be happy.

  8. October 6th, 2008 at 12:57 pm

    bitterHax says:

    Make him/her shift from coding to writing a library of technical documentation… especially on code that individual didn’t write.

    That will certainly crush the spirit of my *good* programmers.

  9. October 6th, 2008 at 1:02 pm

    matt says:

    I agree with some points, but not all of them. If you took equipment away from *me*, I’d walk. Specifically, I love to play foosball on breaks. I’m obsessed with it. It’s hard to find a good game in this area, and my company (Yahoo!) has some of the best players around.

    I also love the perks (plenty of free beer and food). While I am a hacker and love difficult projects, I work with several really honestly good programmers who just do this for a living. They don’t care if the job is hard, and they’d be much happier to get it done early and easily.

    What you’re forgetting is that not every programmer is a hacker. Some are great but stop caring at 5pm.

  10. October 6th, 2008 at 1:12 pm

    louis says:

    Hey guys, just to clear up some miscommunication, I didn’t mean to say that this will demotivate “good” programmers and that if these things don’t apply to you, you are therefore not a good programmer.

    In this case I was relaying in semi-narrative fashion how a good friend, whom I consider a solid programmer, became demotivated and eventually quit his job.

  11. October 6th, 2008 at 1:50 pm

    barot says:

    also demotivating:
    * getting the feeling that no matter how high-level you make a technical explanation you are still being viewed as a geeky bad communicator

  12. October 6th, 2008 at 1:53 pm

    Lori says:

    My last job was so good at:

    3. Working on stuff that no one will use

    90% of my team’s projects went live and within 6 months were NOT used anymore, or deactivated because the dept we wrote the application for got a new manager that wanted it done yet another way.

    We’d then code that new program and yep within 6 months it was NOT what anyone wanted anymore. And so many of the applications we were coding, we the techie – programmers & analysts saw as useless from the get-go, but we had to code it anyway. And yep, as soon as it was installed the users realized it really wasn’t useful. Something we had told them all along.

    Luckily, my current job is NOT like that – at least not yet :)

  13. October 6th, 2008 at 1:54 pm

    rhea says:

    Why is it a he and not a she?

  14. October 6th, 2008 at 2:19 pm

    FSK says:

    These tactics are amateurish. If you want to fire someone who doesn’t deserve it, just tell the schmuck programmer he’s doing a good job while telling your boss he’s an incompetent fool. By the time he figures out what’s going on, it’s too late.

  15. October 6th, 2008 at 2:19 pm

    Peter says:

    > Why is it a he and not a she?

    Have you read the article?

    > (note: based on a true story, but not mine)

  16. October 6th, 2008 at 2:36 pm

    John says:

    I never thoguht about it this way, but that’s absolutely spot on. Nice article.

  17. October 6th, 2008 at 2:42 pm

    rox0r says:

    >Why is it a he and not a she?

    http://biology.about.com/od/basicgenetics/p/chromosgender.htm

    “The male gametes or sperm cells in humans and other mammals are heterogametic and contain one of two types of sex chromosomes. They are either X or Y. The female gametes or eggs however, contain only the X sex chromosome and are homogametic. The sperm cell determines the sex of an individual in this case. If a sperm cell containing an X chromosome fertilizes an egg, the resulting zygote will be XX or female. If the sperm cell contains a Y chromosome, then the resulting zygote will be XY or male.”

    I think HE probably was conceived by a sperm containing a Y chromosome resulting in a male baby that grew into a male developer. But i could be wrong…

  18. October 6th, 2008 at 2:50 pm

    Boris Kolpackov says:

    I personally find having to work on a rotten codebase written by someone else the worst of it all.

  19. October 6th, 2008 at 3:53 pm

    Mike G says:

    Constantly asking for his opinion, and then ignoring it anyway or looking for reasons why it’s wrong. That’s currently working to demotivate me, I can promise you.

    But then hey, why would we want a scalable distributed message-based architecture, when we can build a non-scalable system based on .NET Remoting, a five year old unsupported legacy Microsoft technology.

  20. October 6th, 2008 at 5:23 pm

    Rob says:

    Oh yeah I can add to that-
    1. Never come out of your office to see how things are going. because we all know that your meetings are far more important that knowing how your staff is doing. After a while, we really won’t care either.
    2. Don’t follow up. Because if you say you’ll do X and don’t, why should I do Y even though I said I would?
    3. Continually change the focus of the department. The staff just loves the experience of “If it’s Tuesday, we must ‘focus on the customer’”
    4. Hire a business analyst that knows nothing about IT. Because the world needs another salesman with a new title.

  21. October 6th, 2008 at 6:35 pm

    MyNameIsT says:

    Oh, programmers just like things to be done good! If something is blurring the image of ideal code/work/project/description than it’s ok when know if else clauses. Otherwise it’s dirty thing called life with all this blurred logic. It’s not good place for us, people to program ;)

  22. October 6th, 2008 at 6:41 pm

    vBharat.com » Demotivating a (Good) Programmer says:

    From vBharat.com » Demotivating a (Good) Programmer…

    Let’s say you are a boss of some developers. And you’ve got this one guy who is way too motivated. He is making everyone else look bad. You want to force him to quit. I have no idea why you’d want to get rid of your one motivated good programmer,…

  23. October 6th, 2008 at 7:08 pm

    cak says:

    I understand people making generalisations, like that all programmers play Xbox/PS/Nintendo. But I don’t accept that somebody who is an actual programmer make those same generalisations.

    Money does work. I have moved from research projects at a University in Grid Computing, to less interesting Financial calculations, to really less interesting stuff to become a senior developer, and get paid a lot more. I can work on interesting projects on my own time, I would rather get paid more, and work in a less stressful environment.

    Equipment, you better give me a good machine, I will not bring in my own stuff. This is something I demand.

    The rest of your comments are bullshit as well.

  24. October 6th, 2008 at 7:37 pm

    David of Oz says:

    I recently discovered a great demotivator. Step 1: Find stupid people to work with the aformentioned motivated programmer. That factor alone might not even phase the motivation as the developer may take it as a challenge to educate the people he’s working with. The crucial step 2, is to force confrontations with the stupid developers and then continually take the side of the stupid developers.

    I recently had a great one whereby the other developer was swallowing all exceptions, without logging the cause or handling them. I challenged this position and tried to highlight just how bad it was but was pretty much reprimanded for doing so. Then in the following weeks I sat back and laughed every time our application fell over with no obvious causes. What was fantastic about this, is that I never rubbed it in to anyone, but still managed to come out of it with grudging respect from the other developers, even the manager who’d reprimanded me.

    Truly good developers should have the confidence to stick to their guns, not get bitter, and rely on the fact that success will always win the day. You might not get invited to all the social functions, but as you say, good developers don’t care for schmoozing.

  25. October 6th, 2008 at 11:34 pm

    [root@EGA]# » Blog Archive » links - 20081006 says:

    [...] number changing every time [pic] Is Google Using Chrome to Index Password Protected Web? Demotivating a (Good) Programmer Al Franken exposes O’Reilly altering Bidin interview vid to slander him The Steakhouse Incident. No [...]

  26. October 6th, 2008 at 11:46 pm

    Eric Wendelin says:

    I have to say… well done! Most articles along these same topics suck but this one just seemed more intelligent.

  27. October 7th, 2008 at 12:36 am

    Reymond says:

    Good article.

    And I agree so much with @webdtc.

  28. October 7th, 2008 at 12:40 am

    hoppster says:

    @rox0r

    nice!

  29. October 7th, 2008 at 2:41 am

    Luggy says:

    Nice – I’ve summed up my twopenneth

    http://mindofluggy.blogspot.com/

  30. October 7th, 2008 at 2:42 am

    Luggy says:

    Good one – I’ve penned a sort of response on my blog.

    http://mindofluggy.blogspot.com/

  31. October 7th, 2008 at 2:50 am

    deafmacro says:

    * Not allowing a programmer to do his job the right way by imposing unrealistic deadlines then blaming the programmer for not planning

    * Asking the programmer to fix someone else’s code which has been written badly

    * Ignoring the programmer during the design phase

  32. October 7th, 2008 at 2:51 am

    deafmacro says:

    * Not allowing a programmer to do his job the right way by imposing unrealistic deadlines then blaming the programmer for not planning

    * Asking the programmer to fix someone else’s code which has been written badly

    * Ignoring the programmer during the design phase.

  33. October 7th, 2008 at 4:18 am

    Web 2.0 Announcer says:

    Demotivating a (Good) Programmer…

    [...]Let’s say you are a boss of some developers. And you’ve got this one guy who is way too motivated. He is making everyone else look bad. You want to force him to quit. I have no idea why you’d want to get rid of your one motivated good progra…

  34. October 7th, 2008 at 4:39 am

    david says:

    Okey, maybe a somewhat radical view:
    99% of all the available jobs/projects are are intellectually uninteresting DB and web development crap.
    Your whole article targets the remaining 1%. Hmm.

  35. October 7th, 2008 at 5:34 am

    raveman says:

    I have to 100% agree with cak, rest is bullshit.

  36. October 7th, 2008 at 10:16 am

    Olof says:

    Your post illustrates why many bosses say that managing programmers is like herding cats…

    Programmers like you are a pain in the ass to manage, because you always want to do what pleases yourself the most. What more, you actually BELIEVE that it’ll always be for the best of the company if you are allways allowed to do what pleases you the most.

    Please.

  37. October 7th, 2008 at 11:12 am

    Mike says:

    First, your story sounds like Microsoft and EA.

    Second, as a guy with Midwest work ethic and management training (that I choose to ignore because I like “getting my hands dirty”), I would rather have 1 or 2 good programmers that you can always turn to and trust to get the job done properly (making sure they get proper compensation) than to have an office full of halfwits that puts out some Microsoft-like piece of crap that is full of bugs and a majority of people hate.

    Third, if you really want to get rid of them, promote them to Senior Coordinating Office Programmer. They will love having the title of “Programmer” still but when they see their work load consists of training people and looking over people’s work (and not actually programming itself), they will split faster than dropping a coconut from the Sears Tower.

  38. October 7th, 2008 at 12:12 pm

    Jeremy says:

    This post doesn’t just apply to programmers. I work in the media (think big national TV network) and if my job was too easy or didn’t matter, I’d probably leave too. Thankfully, the nature of my work precludes both of those things and produces an impressive variety of crazy and ever-changing shit to look after.

  39. October 7th, 2008 at 12:41 pm

    louis says:

    @Olaf

    First of all, holy strawman. Nowhere did I say anything of the sort that I believe programmers should only do what makes them happy. I strongly suggest rereading it, this time listening to the actual point I’m trying to make. Because you’ve missed it. Badly.

    That being said, I don’t feel sorry for bad managers who bore their workers to tears through their usual comedy of errors and cause them to quit. If people who aren’t good at their job fail, and then blame others, that’s not really my problem, is it? They can sit around and blame the programmers all they want. Those programmers are working somewhere else, now.

  40. October 7th, 2008 at 1:51 pm

    Jiang says:

    Seagull manager… come to your place, make a lot of noise, then leaves tons of mess and run away… that’s what really demotivating me…

  41. October 8th, 2008 at 2:39 am

    Jack says:

    Want to really destroy the morale of gelled team of talented programmers? Start an offshoring pilot programme! Begin with the Q/A team. Then add support for a couple “legacy” systems. Next, take your most senior developers and have him waste a week or two training some fresh-out-of-the-diploma-mill Bangalore graduate and refer to this joker as his “colleage.”

    Additionally, be sure to remind employees that the offshoring exercise is “not about the money, it’s about quality” because the smartest people in your office will never see through a laughable, obvious lie, right?

    Bonus tip for management: Try to act surprised when Senior Developer hands in his resignation.

  42. October 12th, 2008 at 8:23 am

    Artisan says:

    I’ve often witnessed this pointless morale destruction by the management.
    But not often on purpose. They usually let things happen and only pay
    attention to the crew members with more developed ’sliming skills’.

    Common sense dictates this is against their own interests. Because their
    promotion is the *real* requirement of this project. Working to procure
    them these promotions is the *real* purpose of the crew. Never mind the
    subject of the project.

    This proves to me these people are plainly stupid assholes because:

    (1) If they would be intelligent, they would at least pretend to care
    about the crew. Because motivated people don’t think to leave a
    project, they work harder and if carefully manipulated, they even
    would work overtime for free ! They might even thank you in the
    end for the offered challenge. (being a bit cynical here…)

    (2) The fact they don’t consider the previous point shows they don’t
    have a plan to manage the outcome of the project. As such, their
    only method is literally hoping the project ends successfully.

    (3) If after the two previous points they’re still in command of a
    project it proves their own manager is even worse. For me it’s
    a proven fact in such a chain of command competence and
    intelligence decrease when going upwards. Don’t forget this
    shit happens because it is allowed to happen. Again, not always
    on purpose. But because they don’t want to care. Or even can’t.

    As one of the persons here also remarked, I don’t think this is
    restricted to software development. I think it is simply the way
    things work in the west today. If you have a caring manager,
    that’s very good. If you don’t, don’t be disappointed. It’s
    an unfortunate common fact.

    Sorry about being so crude, but I’ve seen myself nice and competent
    people pointlessly being destroyed by their very own managers.
    Projects developers dream of, being reduced to a tasteless mush.
    All because enjoyment at work for them is indecent. And as such
    should be neutralized.

  43. October 12th, 2008 at 5:36 pm

    Diego says:

    One of the best posts every read. Great !

  44. October 14th, 2008 at 5:55 pm

    great programmer says:

    this article, however well intentioned, does a great disservice by perpetuating some rather insidious myths

    lets start at the top: money

    pay your programmers well; pay your great programmers better than anyone else, especially management.

    the idea that somehow what motivates great programmers is working on ‘cool’ stuff is an insult

    SHOW ME THE MONEY

    here’s what de-motivates more than anything: seeing clueless bozos make more money than programmers

    as for the rest of the article, it’s irrelevant

  45. October 15th, 2008 at 9:11 am

    Curious Cat Management Improvement Blog » Management Improvement Carnival #44 says:

    [...] Demotivating a (Good) Programmer by Louis Brandy – “consider this your executive summary: he is motivated because he likes the actual work. That’s the Achilles heel. Now, before you think you’ve got this problem solved, let me explain to you the secret to the secret: what he thinks is cool is almost beyond your comprehension” [...]

  46. October 29th, 2008 at 11:13 pm

    eric w says:

    i just stumbled across your blog – just wanted to say it’s pretty kick-ass and keep up the good work.

  47. October 30th, 2008 at 8:23 am

    DZ says:

    Agree with webdtc 100%, currently looking for another job because of this exact reason; which I don’t predict is going to be difficult.

    Also, I think the point of the article with relation to the money is that ’some extra money’ will not motivate a developer to leave, but a considerable amount of money will. Give me a 20+% raise and I will take on a boring project… not sure how long I will last though. However, I think that believing in what you are doing is worth more than whether the job is boring — and by that I mean that you agree with the decisions made in the project, and you believe that they are the correct ones.

    Lastly, at all your managers out there, I have no problem with a managers decision on requirements for the project — I however have problems with managers making decisions on how to write the code or which libraries to use, specially coming from managers with limited development experience. You can manage the application development, but let me manage the code. Listen to your developers, don’t assume that your limited development experience means you are qualified to judge how to better tackle a problem — share the responsibility.

  48. November 1st, 2008 at 9:02 pm

    Rod says:

    *round of applause*

    With impeccable timing, I found your blog today, a scant two days after I left a job for *exactly* this reason. Amongst other frustrations, a VP had described the project to which I was assigned as “No-one in our group thinks this is a good idea, and we don’t think anyone will use it, but (Senior VP of our group) promised it to (Senior VP of another group), so we have to do it.”

    Unsurprisingly, I found it tough to give a shit after that!

  49. November 2nd, 2008 at 11:24 am

    Bob Igo says:

    Awhile ago, I blogged about the notion of inverting failure criteria to determine success criteria: http://bob.igo.name/?p=29 At the end of your article, you touched on this for this specific case, but it’s worth considering in general.

  50. November 9th, 2008 at 4:01 pm

    PM Hut says:

    This article assumes that you have a total control on your resources, most of the times, especially if you’re a Project Manager, this is not the case.

    I’ve noticed that having a Project Manager who’s technically competent (and micromanaging) does not really resonate well with the senior developers.

  51. November 23rd, 2008 at 4:07 pm

    Leadership Course says:

    Leadership Course…

    Plato may have dies thousands of years ago, but this quote on Leadership sure seems applicable today: A tyrant is always stirring up some war or other, in order that the people may require a leader….

  52. December 15th, 2008 at 9:02 am

    The Regular Programmer says:

    Sometimes Programmer will become tools for “Career Jump” for the System Anlyst.

  53. February 22nd, 2009 at 10:44 pm

    Weekly Web Nuggets #35 : Code Monkey Labs says:

    [...] Pick of the week: Demotivating a (Good) Programmer [...]

  54. August 10th, 2009 at 7:22 am

    lbrandy.com » Blog Archive » One year birthday says:

    [...] 29,293 – Demotivating a good programmer [...]

Leave a Reply


Need a new job?