// Internet Duct Tape

Coworkers Considered Harmful

Posted in Lifehacks, Technology, Workhacks and High Tech Life by engtech on October 15, 2007

Workhacks

I hit a realization this weekend that I’ve hit many times before. There’s an inordinate number of times when I’m in the office late not because of my own time management failures but because of the people I work with.

Common coworker induced workplace failures:

  • Checking in code that doesn’t work at all
  • Checking in code that introduces subtle bugs somewhere else in existing code
  • Trivial interruptions when I’m in a state of flow
  • Playing vacation snafu where they schedule a trip immediately after a deliverable
  • Playing priority snafu when a manager or team leader side swipes you with fixing someone else’s problems that really aren’t that urgent compared to what you’re already working on
  • Telling me something I’m responsible for is broken, when it’s really because of an error with the way they’re using it
  • Letting someone convince me of their interpretation of a spec because they are more experienced and more confident in their opinion
  • Following their implementation recipe (that doesn’t work — particularly from managers who aren’t in the trenches anymore)
  • Assuming their code does what the comments describes
  • Assuming that because a manager asked me for it directly it falls into the 20% of what’s important, not in the 80% of what can be ignored

One of the best lessons you can learn in life is that you can’t change anyone else, you can only change yourself. The minute you put the blame on someone else you’ve switch things from being a problem you can control to a problem outside of your control. Up until this point I’ve put the blame at their feet, but it’s really my fault because of how I interact with them. It all comes down to a case of trust, and with coworkers trust should be earned, not given (at least when it comes to their assumptions). Here are some things I can do differently to avoid those situations.

  • Always keep my manager informed of my current priorities and to-do list
  • Put on the headphones when I’m in flow and turn off phone/email
  • Never, ever check out coworker code when I’m in the middle of debugging my own code
  • Always check out a stable version of other coworker code that’s been show to be sane so I don’t spend my time fixing their problems
  • Read code, use comments as annotations
  • Always create interface assertions when integrating with other people’s code to easily flag when they’re not behaving the way they’re supposed to be
  • Regressable unit tests for my own code so that I’m confident that the problem isn’t on my end, and I’m confident I can introduce changes in my own code without have side effects
  • Don’t believe a bug exists without seeing it reproduced and seeing the error message
  • Don’t believe my interpretation of spec is wrong without digging into it for myself
  • Always be mindful, never follow instructions without thinking it through for myself

How have your coworkers unintentionally made your life hell lately?

(To make it clear — put your trust and faith into your coworkers, because your relationships with them will get you farther in life than putting your trust into your company ever will. But there’s a difference between trusting them and blindly trusting their assumptions.)

18 Responses

Subscribe to comments with RSS.

  1. baron said, on October 15, 2007 at 11:02 am

    This is hilarious in a sad way that sinks in. I’m sure my coworkers feel the same way I do about them. That’s another thing about teams, when everyone’s doing there part it’s like a small family but when things go wrong…

    No editor in their right mind would put three or four best-selling authors together with some clueless college grad and a recent immigrant (think Java coder learning PHP) and tell them to write a “classic novel” together yet it happens all the time in IT. In fact, it’s how things are usually done.

  2. Michael Foord said, on October 15, 2007 at 4:57 pm

    Pair programming (with the collective code ownership it brings) and TDD (with the full test coverage it brings) solve a lot of these problems.

    Of course bad-coworkers are a problem whatever systems you have… but the job market is good for programmers right now… (In London anyway).

  3. Mitch said, on October 16, 2007 at 11:00 am

    Some day when software engineering is standard practice for the team, you won’t have to worry about this…

    http://softwareindustrialization.com/PreparingTheWorldForSoftwareEngineeringPart1.aspx

  4. Jason said, on October 16, 2007 at 11:37 am

    Wow, I couldn’t have said it better myself. I have one co-worker who is involved in training, my job is the setup/deployment of software. He is constantly uninstalling and re-installing our software on his computer and at least 3 times per re-install he calls me saying he can’t get it to work.

    I know exactly how you feel.

  5. talkni said, on October 16, 2007 at 12:06 pm

    Yip… resonates with me. Except for the code bit ‘cos I only really care about the finished product and that it works. You coders operate in your own wee world anyway and are… probably… best left there! :-)

  6. Rintoul said, on October 16, 2007 at 12:41 pm

    I am here to spread the word that TDD is a load of bunk. Sure, writing a test that checks that 22+22 does indeed equal 44 is fun and all, but if you’re spending more than 30% of your time writing bloomin’ tests, yer wastin’ time better spent perfecting your actual code. Help to stop this nonsense called “TDD”. Call me a hack if you will, please. But spread the word anywho. Thanks.

  7. raincoaster said, on October 16, 2007 at 4:54 pm

    This has applications wider than the software world, for sure.

    Welcome back to WP Top Posts.

  8. thatpessimist said, on October 16, 2007 at 5:42 pm

    There’s this guy at my job that checks in code that either:
    #1 Doesn’t work at all
    #2 Doesn’t work the way it used to
    #3 Ends up causing problems by affecting something else

    I think it comes down to simply testing your code thoroughly before checking it in.. which my co-worker simply doesn’t understand.

  9. engtech said, on October 16, 2007 at 9:07 pm

    @thatpessimist:

    just a FYI, if you go to wordpress.com Dashboard >> Users >> Your Profile and set your website under Contact Info then you won’t have to manually type your blog url in comments. It will be done automatically for you.

  10. engtech said, on October 16, 2007 at 9:08 pm

    @raincoaster:

    Thanks. The one good counterpoint I’ve seen in the reddit comments is that what I’m suggesting is really going against being a team player…

    but I think the general gist comes across that at this point the team cohesion has already failed.

  11. engtech said, on October 16, 2007 at 9:10 pm

    @talkni:

    one good easily point out that one of the biggest failures when it comes to programming is worrying more about the code than a finished product that works…

  12. engtech said, on October 16, 2007 at 9:11 pm

    @Mitch:

    I’m handing out Code Complete for christmas.

  13. raincoaster said, on October 17, 2007 at 1:03 am

    That comments ninja thingy of yours is pretty cool, btw.

    Teams do not always succeed, particularly when they – DUH – don’t work together. This means, by definition, that compatibility and proactive communication are critical in long-distance or even cubicle farm teams. Unless you share a space, you won’t have cohesion naturally. I’ve worked remotely with people I’ve been so compatible with I could finish their sentences or blog posts and they wouldn’t even notice. I’ve worked across the fuzzy grey cubicle wall from people who were plotting against me on the phone, even as I was typing what they were saying into an email to my blog.

    Just stapling people together is not the same thing as building a team, and ensuring the staples don’t come out is not the same thing as managing.

  14. talkni said, on October 17, 2007 at 6:34 am

    entech says:
    “one good easily point out that one of the biggest failures when it comes to programming is worrying more about the code than a finished product that works…”

    and I absolutely agree. :-)

  15. [...] Tape lists a number of coworker induced workplace failures ways to avoid them in the article Coworkers Considered Harmful. [via [...]

  16. Richard said, on October 25, 2007 at 11:32 pm

    {shudder} I remember those days so well. Now as a consultant, things are a little easier since I manage myself – which is a full time job in itself – and my only coworker is myself. I do have clients though, which is another problem entirely.

  17. blog-thing : Digest for October 2007 said, on November 24, 2007 at 12:13 pm

    [...] Coworkers Considered Harmful [...]

  18. I Can Has Ruby? « // Internet Duct Tape said, on February 26, 2008 at 9:18 am

    [...] of a new language. Obviously, the internet is a gateway drug. I tried out Ruby mainly as a way of increasing my own job satisfaction after I had heard so many good things about [...]


Comments are closed.

Follow

Get every new post delivered to your Inbox.

Join 286 other followers

%d bloggers like this: