I am going to give it away right here in the first sentence, it's the ability to ask for and take criticism. Yeah I know technically it's two skills. Before you switch off and browse away to look at funny cats with bad grammar, I don't mean the ability to say:
"Well, of course I can take criticism, I am hip, I am with-it."
It's like asking people if they are good in bed, it's not as if anyone is actually going to say that they are terrible. And yet most developers (most people) can't take criticism well and even fewer know how to ask for criticism and have it be received without uncomfortable silences.
Humans don't tend to be able to get a lot of insight into their own failings, so we need an outside opinion. Feel free to disagree with me here, but I'll tell you this. There are dozens of things I want to learn that I think will improve my skills and make me better at what I do, but it has always been external advice into how, where and what I should tackle that has given me the biggest boost in my growth as a developer. This advice was accidental every single time, just imagine if I could achieve a little bit of repeatability here. I wonder if this is the exact same thought that the dudes who were implementing waterfall for the first time had? Rigid processes aside, taking criticism and using it constructively is especially important for developers. It is basically a matter of survival within our field. There is so much to learn and new stuff comes along at a faster rate than you're able to "master" (when I say master, I mean become aware of) old stuff. We want our efforts to propel us forward in leaps rather than at the speed of a leisurely crawl (although there is something to be said for crawling as well, but I will get to this some other time).
So Why Are People Bad At Taking Criticism?
Well, it doesn't really help that most people are really crap at giving constructive criticism. There is just not a lot of criticism going around, how are you supposed to get good at it if you hardly ever get a chance to practice? Plus, our primal response to criticism is confrontational, either offensive or defensive (depending on personality), goes back to the cave days.
"I've survived right? So how dare you say I am doing something wrong!".
Double plus, developers are worse at this than most, we're ornery, we like to argue, we pick on minute details. By rejecting criticism we can immediately scratch too many itches, it's hard to ignore for the promise of some intangible benefits at a later date.
What About Asking For Criticism?
Remember how I said that most people are crap at giving constructive criticism? Well, they know it. They also know you're bad at it. We're not particularly comfortable when we're asked to do stuff that we are no good at. So, they don't ask you and you don't ask them, everyone is happy (kind-of). It's a global conspiracy that everybody buys into – easier that way. Sort of similar to how everything is overpriced 10-fold in the enterprise world (including software), but it is easier to try and get a piece of the pie rather than call the whole industry on it. And when they try to make us criticise other people, like for those crazy annual reviews that most companies have (I've got thoughts about them); we do our best to get it over with as quickly as we can and try to use as many words as possible to say as few constructive things as we can get away with.
What To Do
Ha, I don't have all the answers. Just because I observe an issue and see the benefits if it were removed, doesn't mean I know how to remove it :). I am not particularly great at taking or giving criticism, I am a lot better than I used to be, but there is a long way to go. I've already given one tidbit of advice that can get you on your way – practice. The one surefire way to get better at something is to keep doing it. Find some people you trust, and go crazy on each other – hopefully you'll still be friends afterwards :).
Here is some more advice, when asking for criticism, it really helps if people don't know you're doing it. You need some serious communication wu-shu to pull this off, but I have seen people who were awesome at this. Unsurprisingly considering everything I said above, these people were also awesome at a lot of other things.
Last piece of advice – grow a thick skin without becoming deaf to what people are saying about you. It's a sad life when you go around taking everything personally, but at the same time you don't want to dismiss it. There is a saying in Russian "to coil on the moustache" (it seriously doesn't translate well, considering it's metaphoric nature), but it essentially means, you examine a piece of information for relevance and take it under advisement if you find it useful. So, ummm, do that.
Seriously, if people followed some of this advise, we could improve workplace atmosphere across the board. Then maybe people could relax a little bit more at work. Of course there are already places where if people were any more relaxed they'd need business hammocks. I think I am veering off-topic a little, having a short attention span sucks. Somebody really aught to pull me up on that.
Image by lism.