How to Keep Crappy Programmers

This is a follow-up to the popular How to Find Crappy Programmers.  If you’re interested in having a team of crappy programmers, instead of those annoyingly bright and passionate good ones, you probably want to start there.

Despite your best efforts, some good programmers slip through the cracks – how can you get rid of them while keeping your coveted crappy programmers around?

1. Focus on Punctuality and Butt-In-Seat Time

Never mind that a good programmer can produce more valuable work in a 30-hour workweek from home than a crappy programmer can toiling 60 hours in the office.  There’s no point in getting useful software in a timely manner if you don’t get the all-important face time.

Good products are nice, but there’s nothing more fulfilling in a manager’s life than seeing a roomful of people, heads-down, typing away in tiny cubicles at 8:00 am in the morning.  Coming in at 9:30 am is wholly unacceptable – those guys are just having too much fun.

You get people on salary so that they aren’t on the clock, and that way you don’t have to pay extra when they work longer than 8 hour days.  Then again, don’t be afraid to insist that they work at least 8 hour days all the time.  Who cares if they have nothing to do, or if they have already gotten way more done than the guy next to them, surfing the internet?  It’s butt-in-seat time, baby.

2. Set Their Salary Based on Their Age or Time at the Company

Setting salary based on your age makes a lot of sense since you, the manager, are probably old.  That way you get more money.  Since that’s illegal, you should base the pay on “years of experience” which equates to age for everyone who didn’t go on a 5-year+ sabbatical.  Don’t worry, that’s pretty much only working moms, and you probably don ‘t want to pay them much either.

You might have an employee who’d rather be paid based on their productivity or the value of their work or even their skill level.  Blasphemy! Clearly, that person is just looking for a free ride, without having to pay their dues.  Say it with me people: “We care about everything except for the actual work you produce.”

3. Reduce Time Spent Coding

It’s important for developers to spend a lot of time in meetings.  That way they can get a complete understanding of the minutia in the business side of things.  And also, it’s more fun to have a big audience when you ramble on in meetings.  Don’t worry that we won’t have any time left to do actual work (ie. coding), we’ll just come in early and stay late to get that part done.

Another fun thing is having your programmers do your desktop support.  Really, anytime your Outlook or your iPhone is acting up, feel free to call them over to troubleshoot the issue.  It’s so handy having geeks around.

4. Monitor and filter their Internet usage

Developers just can’t be trusted, everyone knows that.  We are always hacking things and downloading illegal music and that sort of thing.  So, you should definitely install a program to monitor their internet usage.  You could also block sites that you deem to be a waste of time, but then that might tip your hand that you’re monitoring them.

For that matter, you ought to go ahead and dictate what development environment and tools they have to use.  After all, you picked the setup with the longest feature list (not to mention the sales guy took you to lunch) so those developers shouldn’t have anything to complain about.  Anyone who wants to use anything else is just a prima donna.

5. Make Them Build Crappy Software

This is the most important one of all.  A crappy programmer can only make crappy software.  However, a good programmer has the ability to make both good software and crappy software, right?  Wrong!

Good programmers hate writing crappy software.  They’re always yammering on about code design and trying to test everything, what a pain.

Force them to write inline queries, develop in VB on the command line and fix bugs in 1,000 line methods.  They may fight it at first, but pretty soon they either leave or become a crappy programmer also.  You’ll know that they’ve come over to the dark side when you see that empty look in their eyes and when they see a Dilbert cartoon they laugh … maniacally.

The reality is that not everyone is interested in managing good programmers. Sure they get things done and know a lot about technology … yadda yadda.   They also challenge your assumptions and push to improve the system and that’s just not going to work in your business.

The fact that it’s been done that way before and hasn’t imploded yet (or lately) is good enough for you. You can use these handy tips to keep your crappy programmers while firmly excluding the good ones.

Like this post? Subscribe to the blog or follow us on twitter for more fun updates. Code Anthem is a startup aimed to help programmers show what they can do and connect with great companies. Stay tuned.

45 Responses to “How to Keep Crappy Programmers”

  1. You forgot to add “Give them computer hardware that is at least 5 years old” :)

  2. Pivotal question: Do you want results, or do you want the feeling of being effective and in control?

  3. Rob says:

    now I’m depressed…

  4. Amber says:

    Rob, you made me laugh out loud. We’ve all been there, buddy.

  5. joe says:

    oh god … how true, how true

  6. Matthew says:

    Nice set of articles, but a teensy bit one-sided in places.

    What about the programmer who comes across as being a prima-donna about introducing some flavour-of-the-month practise, but who isn’t able to justify it in terms of measurable impact on the bottom line to (say) a small business owner. Often they’ll be right, but frequently they’ll be wrong too. I’ve often been guilty of this as a programmer–I want to change some code to make the design more elegant, but if pressed it’s hard for me to say whether the improvement adds any value for the business. Sometimes it will, sometimes it won’t. Either way as a ‘good programmer’ I will feel strongly about the matter, and it’s my boss’s job to try and temper that programmer “I only want to work with good code!” gut feel with a bit of business-oriented practicality.

    So yes, the extent to which you indulge these people is always going to be a tricky call, especially for the non-technical, or even the technical-but-non-specialist. On the one hand you don’t want to piss off the talent–and let’s face it, some of this stuff really is just that, in the same way a hollywood producer lays on whatever perks the best actors demand. On the other hand you need to have confidence that there’s real business value in activities that are being proposed. Or if not immediately demonstrable value, a way to measure reasonably objectively over time what impact they’re having.

    On top of that, sad truth is that a lot of companies don’t actually need great programmers. Sure, all else held equal they’d like them, but they’re expensive, they always want to spend your money bringing you into line with the latest and greatest–and sometimes it really is sufficient just to keep some old ball of code ticking along. I wouldn’t really want to work for one of these places, and doubtless neither would you, but it’s an acceptable deal for some programmers and some companies, and there’s a more nuanced perspective available than just to patronise them :)

  7. Matthew says:

    The other thing with ‘great programmers’ is that if you don’t give us a sufficiently interesting problem to work on, we’ll often go and invent our own (whether consciously or not).

    That might be a plus for someone like Google, or sometimes for some kinds of start-ups, but not for some more pedestrian smaller businesses.

  8. Matt says:

    Self promotional plug that you might be interested in – http://mattmccormick.ca/2009/12/07/how-to-torture-programmers/ – How to Torture Programmers

  9. @Matthew

    Your dilemma about justifying coding elegance can be solved with 20% time, or some sort of equivalent. If you have a great programmer, giving them some time to do what ever they want WILL give you huge payoffs. It might not be pet project #1, or #2… but they’ll hit gold. Allowing some self directed time also helps great programmers deal with points 1-5 above. Until you fix it hopefully.

  10. Matthew says:

    Michael: Good point. 20% time helps to make you think about which activities belong in the 20% and which belong in the 80%, and to keep it somewhat structured.

    Having a good attitude to open-sourcing stuff can help too.

  11. Lance Surfer says:

    It is like being a parent of a child who you don’t get…if you don’t understand it; you can’t manage it. It sounds like they are managing the way most parents do…shut it down and crush the spirit of what makes them great! Most Managers(parents) don’t want to feel like they are being taken advantage of…Like most parents(managers) who thnk they know (and don’t) A little understanding and request for insight may go a long way…

    Father of 2 year old

  12. Also, make sure the software they are working on will never actually be used by anyone.

  13. Jorge Pedret says:

    LOL this sounded so much like some jobs I’ve had hahahaha xD. I didn’t stay there for too long though.

    To keep your crappy programmers, I would add:
    Promise them that they’ll get a bonus/extra pay/raise after he finishes fixing the code. And when he finishes it, blame it on your bosses that you can’t get it… just yet.

  14. Andrew Dyster says:

    Reward programmers based on the lines of code they write. More lines obviously means better productivity!

  15. XGuru says:

    hi,buddy.
    Here is your article”How to Find Crappy Programmers” in chinese.

    http://www.cppblog.com/xguru/archive/2010/04/26/How_to_Find_Crappy_Programmers.html

    LOL,hope you like it!
    my twitter @XOXGuru

  16. Sébastien says:

    You forgot to mention: “require programmers to log all their time & activities into a time tracking solution & to use JIRA or another ticketing system for ALL communications” ;)

  17. Really funny!! Here are some more points :
    1. Reward the developer who sends the most emails giving useless and pointless information.
    2. Encourage using buzz words.

  18. TD says:

    It’s like as a read through the list i just saw little check marks next to each number appearing … I think it hurts more to see it written out, at least before I never had to think of all them at once …

  19. James says:

    @Web Development Guru

    Let me guess, you’re my boss. Because I love the shit out of my piece of junk 7 year old machine!

    They can afford to pay me 100k/year but not to upgrade my machine :P

  20. Gautam says:

    I really like the point : let them make crappy software.

  21. [...] http://www.codeanthem.com/blog/2010/04/how-to-keep-crappy-programmers/ Filed under: Uncategorized Leave a comment Comments (0) Trackbacks (0) ( subscribe to comments on this post ) [...]

  22. Matt says:

    Surely writing software in completely the wrong language for the job should be on the list.

  23. Richard says:

    Ensuring the entire product is developed up front, without a single release for feedback helps too. No point in getting the user’s opinion, they don’t know what they want.

  24. Bob Wilson says:

    Lucky you don’t work for me.

    I’d fire your ass, for charging me for full time work, and thinking you can get away with 30. Good luck with that. How if you work 60 and I pay 40?

    But you are Special right? Just asking.

  25. Amber says:

    @Bob If a company can pay the same salary to get 60 hours instead of 40, then how is that different than the company paying for 40 hours and only working 30? The answer is that when it’s the employee getting screwed it’s A-OK.

    Thanks for so perfectly illustrating the other side of the table. I think we agree on one thing: I am lucky I don’t work for you.

  26. droope says:

    :P

    LMAO

    “It’s so handy having geeks around.” XDXD

  27. Uncle Mikey says:

    I’ve loved this series so far (and the site in general), but I have to admit I now have a touch of fear that I may have been eroded into a crappy programmer after staying just slightly too long at a place that’s been sliding into just about all of the bad habits described here.

    Hopefully, I can find a way back…

  28. Hostrom says:

    Well, in my experience (and you will not like this), 1% of the programmers that see themselves as great, are in fact great. 99% of the times, if you let him get in at 9:30, leave at 4, “test everything”, use the design-patter-of-the-week, you will have stinky crappy software, full of defects, and delivered late, oh so late.
    All this while doing daily rolling planning where the deadline is like a carrot held in front of the donkey customer.
    Oh, but results do materialize… eventually…
    And that product is “I think”, “most probably”, “it oughta be” free from defects, right guys? “Because we are such great programmers, we should have done every little thing right, right? I mean, we must have… Yes, I think it’s defect free, and what the customer wants, because when I was in college I have looked at that cartoon of the swing that hangs from a tree, and I definately do not make that sort of mistake… for I do daily stand up meetings!”
    And the 1% that does not deserve to have bad managers, well I have seen more than once, that they are not great 100% of the time! Sometimes that 9:30am turns into 1pm, sometimes their brightness or dedication fades, and sometimes that odd time where they fumble with their routine is when they are engaged in a critical project. Can you even consider yourself great if you let this happen even once?

  29. Ray Valdez says:

    Another one:

    - Do not demand documentation for the projects.

    Keep the developers hopping from project to project, never giving the chance to actually finish any kind of documentation. It is not like you were going to hire a new guy or someone needs to give support to the client.

    Also, clients never have cryptic lingo for their methodologies; they just really get along with the boss since college.

  30. Shanon says:

    Honestly the opening picture of the dog pooping is gold. The expression on its face is priceless. LOL

  31. ?Ahmed says:

    managers likes to see programmers on their seats….
    Programmers hates to be forced to do anything, specialty when their is an eye on them.
    I guess , programmers should allow their managers to see them on their seats …… (often)
    & Managers MUST give programmers some space.

  32. Lars van der Schans says:

    And reading all of this gave me another >15 minutes of !programming :D

  33. Endless, Nameless says:

    This makes me want to start a company that reviews code for security and correctness. I’d be on the gravy train for life.

  34. Web Monkey says:

    This is the code of conduct of my company.

    Somebody shot me in the head.

  35. Pete Francis says:

    You are my hero. I live this nightmare every day why I stay is beyond me.

  36. Davi Salles says:

    The same is true for almost all intellectual jobs, and now that online communication is almost better than presence communication it might be true to jobs which are much less technologic related. But human kind is still short sighted, we remember only the industrial revolution and fordism, where people were actually used as machinery and not as brainpower, in that case 8 hours of work is 33% more productive than 6 hours.

    The truth is back in the old days, when workers got the right to work 8 hours/day we were much less productive, now, labour is much more productive and we work the same 8 hour/day. We consume more, sure, but i really thing that general happiness would be increased with an increase of free time (which can also be productive, because intellectual jobs normally tends to have workers who love what they do, and use free time to improve themselves).

    Great article!

    Davi Salles

  37. [...] How to Keep Crappy Programmers This made me laugh [...]

  38. yadab says:

    Another point from me – “Put some astronaut architect to mentor them towards innovation”

  39. Sid says:

    You can also make them develop websites in IE6… no point chasing all the new browsers. They are simpler to develop and everyone else is already doing that.

  40. [...] AkitaOnRails  todos já vimos isso, com certeza RT @viniciusteles: How to Keep Crappy Programmers http://www.codeanthem.com/blog/2010/04/how-to-keep-crappy-programmers/ [...]

  41. [...] news sites driving traffic, a huge part of it was also Twitter and Facebook. My last post, “How to Keep Crappy Programmers” was tweeted over 200 times and shared on Facebook over 90 times. I also have a sidebar [...]

  42. Kelly French says:

    Environments like this are conducive to the Code Monkey

  43. Paul Beattie says:

    Sounds like Orbis…

  44. "R" says:

    WOW… THIS IS EXACTLY WHAT IT IS LIKE AT THE COMPANY I’M AT NOW…

    1) I’ve built a software in a language(platform) I did not know(so code kinda sucked but software still worked)… and the engineers that “use” it DON’T USE IT. AHHHHHHH.
    2)Then there is shit that is beyond multitasking. Currently I’m maintaining 5 or 6 (lost count) projects with dozens of “subset projects” with little to know docs (no time to make them). So every time something may go wrong its sometimes hard to go back to fix because I’m missing deadlines of other projects and forgot how to fix the other one that is broke.
    3) AND EMAILS, tooo many. Every morning when I get in I have hundreds of emails and then as I’m trying to read them all (right when I get in) my boss is like “did you read that email about xxxxx?” NOOOO I’m trying to read the other F*CKING EMAILS. So for now I just “Mark as Read” them all. I CAN’T STAND IT!
    4) As for salary age = more pay rather than experience = more pay.

    And the list goes on and on….

    As soon as I can find a different job in a better environment I’M OUT!

    THANKS FOR POSTING THIS!!! Now I know I’m not the only one experiencing this.

  45. Maxx Daymon says:

    @Lance One of the most common dysfunctions I’ve seen in managers is thinking and acting as if management and parenting are the same thing. Most people don’t have any experience related to authority outside of being parented, parenting, and being managed by someone who learned that way. Fortunately, there are coaches and courses to learn how to operate as a team of adults, though few take advantage of it. Ironically, once you objectify people and treat them like children, they are inclined to respond accordingly, and the vicious cycle kicks in. Also interesting is that you can take any group of people, declare one a manager, and this dynamic sets in, even if you swap out the roles.

Leave a Reply