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