Sunday, February 10, 2013

Premature judgement

When I started my first job, I hardly ever judged my peers. After all, how could I? Everything was unknown for me; I couldn't differentiate good from bad. Over the years that has changed a bit, but with that, I've also slowly become more judgemental towards peers, often prematurely, and not always deservedly.

The first few months of last year, I found myself doing maintenance on a legacy code base between projects. While I worked my way through layer after layer, I pointed my frustration towards those that had come before me; they were responsible for putting me in this mess. With half the office having touched the code base, that didn't really add up though. When I looked at the commit history of some of the offending modules, I found names that I didn't expect; those people were still around, and I actually thought of them pretty highly.

Judging someone's competence solely by code he has written in the past is a flaw. There are very little pieces of code I have written over the years where I still feel comfortable about today. When I reflect on what made it go wrong, I don't have to look far to find a bunch of reasons to blame it on; consistency was favored over common sense, major breakthroughs occurred only after the project was already in maintenance mode, people inexperienced with the domain and infrastructure were dumped on the project last minute to make up for bad planning, knowledge of the technology stack hadn't matured, some patterns and practices weren't commonplace yet, etc... I always find plenty of reasons to shift blame, but when I look at code written by someone else, it has to be their own fault; they must not be very good at building software. And this is unfair; I have no way of knowing the constraints they had to deal with, nor the context they had to work in. None of these justify neglecting basic hygiene though!

I tried to come up with other things that influence my opinion on someone before having actually worked with them; I found two.

  1. The biggest influencer is word of mouth. I try to surround myself with people that share a similar thinking, and if that trusted circle has a strong opinion on someone else, I take note.
  2. The last influencer is someone's online presence. When I learn of someone new joining ranks, I can't resist to look up what he's doing online. Twitter, Facebook or a blog can give away quite a bit.

All in all, I think some preconception is human, and might be the result of subconsciously protecting your work. You only want to involve those with whom you will enjoy working towards your shared goal.

Have you experienced similar behavior? When do you judge prematurely?


  1. Yes, and I try not to judge too early anymore. Been judged too early too often too...

    Wise lessons.
    Communication is a strange thing.

    "I'm just a soul whose intentions are good. Oh, Lord, please don't let me be misunderstood"

    1. I have to confess I only knew the lyrics to that song from being sampled in a Lil Wayne song :-/

    2. There's even a Nina Simone version out there.

      And off course Santa Esmeralda starring Leroy Gomez's version that was used in Kill Bill.

      Not that I am judging or so :D

  2. You are right, in many cases it's dangerous to judge prematurely and one should always consider under which circumstances a certain piece of code has been written. BUT - as you said - there's no excuse for a natural hygene. Chaotic and unreadable constructs have never been good. Code that was originally written for .NET 2.0 (or even earlier) is more verbose, yes, but - if the programmer was good at his profession - you can easily read it, find your way out and make modifications. If I can't, then it's simply the programmers fault, not mine making too much premature judgements.

  3. Couldn't agree more. I've seen some very impressive projects written in not-so-impressive code. My first reaction was to judge the developers but getting to know them better I've always been surprised by how much there was to learn from these guys. Especially in long term projects, you can't blame people of decisions made 2 years ago. There are few people who are proud of what they've written in the past.