Personality Obsessions of Software Developers

Rob Walling managed to generate a lot of interest in writing Personality Traits of the Best Software Developers. While I vaguely agree with Rob’s points, at some level reading it produces a feeling which I can only compare to finding a fingernail in your sandwich.

Approaching 10…

On this “perfect developer” profile, strikes me there are a couple of missing points (for starters!). Based on my own flawed view of things…

  • Is passionate about what they do. Let’s face it – staring at a monitor for 8+ hours a day ain’t Rock N’ Roll (well for most of us anyway) – at some fundamental level you have to enjoy doing this stuff. Put another way – I’d rather work with a passionate trainee than a bored veteran.
  • Has some humility. Being “wrong” is inevitable – you will write code that has bugs, you will produce suboptimal designs and you’re not an expert on everything – how would Linus fare with CSS? If you can’t admit you’re in the wrong, there’s little space to fix problems, learn from mistakes plus you’re probably hard to work with. Inverting this – between binary 0 and 1, there’s no room for ego. The danger, given you’re spending a fair chunk of your life at the keyboard, is your perceived self-worth becomes attached to your ability to hack – an affront to your code becomes a deeply personal attack…

More nit-picking in detail…

Pessimistic

Do we really need the military analogy here? Personally I haven’t been repeatedly tortured and I very much doubt whether it would improve my ability to write code. More to the point I don’t find myself able to identify with with Vietnam war veterans and I’m not hoping for medals of honour. But then again I didn’t feel the need to purchase a Rambo survival knife as a teenager either, so perhaps I’m unusual. In general not a fan of analogy when it comes to programming – beyond the superficial, it serves only to trivialise discussion. And I wonder whether there might be be a trend here – The Vietnam of Computer Science makes some very valid points against ORM – just a shame about the first part.

Angered By Sloppy Code

Rob choose to quote this Paul Graham piece;

…people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent.

To my mind, if you can’t see why you’re better at something you’ve spent years studying and practicing, then you’ve failed to spot the glaringly obvious.

Breaking my own rule on analogy, way back when Nigel Short was getting whipped (again) by Garry Kasparov, remember an article (no link) comparing the players personalities – Garry Kasparov; eloquently spoken (in English), able to converse on a wide range of subjects other than chess, from world politics to music, charming – an “all rounder” vs. Nigel “My Life is Chess” Short – as exciting as drying paint. Another comparable duo – Paul Dirac, tending towards one-dimensional vs. Richard Feynman – Physicist and entertainer – able to “do” accessible Physics.

To me the above quote describes the one-dimensional nerd (if such a thing exists) – hopeless in all areas other than their chosen specialty. But there’s a bunch of reasons (or problems) which require multifaceted thinking, from being able to build usuable applications – understanding the user – to simple communication skills; not everyone works in a safe, nerd-only zone – most have to deal with “real people” as well.

On the point in question…

The worst nightmare for a great developer is to see someone else’s software gasping for air while bringing the rest of the system to its knees. It’s downright infuriating. And this isn’t limited to code; it can be bad installation packages, sloppy deployments, or a misspelled column name.

So what’s the response – run down the hall and start yelling at someone? Or point out the problem in a friendly manner, knowing that next week you might be on the receiving end?

Being able to see many shades of grey rather than black and white could be another point to add to the ideal profile. PHP (and security) is a good case in point – what strikes you as a smarter response: screaming PHP sucks or understanding that it’s popular and doing something to improve the situation?

Attention to Detail

Again a shades of grey thing. If you fail to see how your code fits into the bigger picture of your organisation (e.g. a startup where shipping a prototype is essential to next months pay check), no awards for having spent all your time optimizing a single search algorithm, while failing to produce that working demo.

Premature Abstraction

Anyway – this isn’t really meant to criticize Rob (although it’s probably reading that way) – he confesses up front that the points he’s making are an extraction from his own experience…

And the the more I looked at what makes them so good, the more I realized they all share a handful of personality traits. Well, not exactly a handful, more like four.

Trouble is, in these days of blog powered W00t, claiming you have “four points to perfection” is going to get lept on. Reality just doesn’t shape up this way plus what Rob describes is not a reversible equation: if you find someone that fits the profile, it doesn’t mean you’ve got a great developer and I’d dispute that every great coder (if such a thing exists) has these traits.

And what is this Nietzschean obsession with programming greatness anyway? It’s almost as bad as those top ten lists.

Win an Annual Membership to Learnable,

SitePoint's Learning Platform

  • Dr Livingston

    > run down the hall and start yelling at someone?

    why stop at that though? wouldn’t it make you feel (a whole lot) better if you turned around and lamped someone as well?

    i know i would feel (a whole lot) better not that im saying that it’s okay… of course ;)

  • http://www.phppatterns.com HarryF

    why stop at that though? wouldn’t it make you feel (a whole lot) better if you turned around and lamped someone as well?

    Sounds like a rational, considered response ;)

  • Gator99

    I found this on digg the other day too.

  • Jason Batten

    A great programmer doesn’t talk, he does work. Too many programmers talk and talk and talk and talk and talk and talk…

    The young developers get caught in the dribble. I wished the masses would just stop talking so those who know what they are talking about can write a good for a quality publisher for those of us who really want to learn.

  • ezran

    > run down the hall and start yelling at someone?

    Unfortunatelly, good programmers are not alwyas the best mentors.

    The ones that are both are great technical leads.

    BTW, thanks for the phpsecaudit mention.

  • Justin

    Last time I checked what this guy listed above as personality traits wasn’t on the list of the 5 Big personality traits. If you are care about doing a good job then those “Traits” will fall into place. What the industry needs is leadership. Not people who enjoy telling others the best way to skin a cat.