Excellent Communications Skills

“Excellent communications skills” is one of those throw-away, wishy-washy little bullet points you see on a lot of resumes or job listings. As you may gather from my tone, I think the line is vacuous rhetoric. Modern software development in any nontrivial capacity requires us to be able to relate to others and exchange our ideas clearly and effectively. The capability is so central to the practice that it should simply be part of an assumed skill set — much like typing. There’s a good reason the phrase is so common, of course: the prejudice is still that programmers are non-social creatures. The field of computer science is young (as professions go) and still has not shaken off the perception of the programmer as a loner. Many of us are still introverts, or at least more so than some of our contemporaries.

What makes us this way? Do we become programmers because social interaction isn’t something we are innately skilled at, and the isolated environment of our computers affords us comfort and control? Or do we develop social speed bumps because we became programmers, and over time grow more comfortable in solitude, serenaded by the methodical taps of our keyboards and low hum of the cooling fans? It’s nature against nurture, clearly, and as a result there is no obvious answer.

But regardless of how we got ourselves into this mess, we need to seriously start thinking about getting out. Writing software is no longer something to be done in isolation. The demands of our industry require it; and yet sometimes it feels like we are, as an industry, actively discouraging ourselves from trying to break free of this stigma.

Developing the ability to interact with a wide variety of people involves actually trying to interact with a wide variety of people — there are countless reports and studies plumbing the depths of the human social development process, and reading between the lines can supply you with plenty of advice, but ultimately it comes down to simply getting out there and doing it. As Steve Pavlina says,

I think the best advice I can give for improving social skills is simply: Practice. You can study techniques like matching and mirroring to build rapport, and you can memorize cutesy acronyms like SOFTEN (Smile, Open posture, Forward lean, Touch, Eye contact, Nod). But I don’t think those are all that helpful. I think they’re likely to make you even more self-conscious. If you’re in the right frame of mind to begin with, you’ll naturally perform the correct actions like smiling and mirroring — if you have to think about them, you’re in the wrong mindset.

With practice you’ll develop more comfort in a variety of social situations, and when you become comfortable, you’ll naturally be yourself. And that’s the basis of effective interpersonal communication — just be yourself and feel perfectly at ease with who you are and what you bring to a conversation.

But in the game development industry in particular, the insular programmer is romanticized. We’re nostalgic for the days when the industry was largely driven by single-person programming teams and we elevate “star” programmers and designers by crediting them for a game even though we know full well that they were just one pair of hands among many who wrote code. We segregate programmers; they primarily deal only with other programmers, which just reinforces their introverted, geek cult clique and robs them of the chance to practice social interaction in differing environments.

This, in turn, can be problematic those programmers who are promoted to leads or management, both positions that typically require more frequent and deeper discussion with staff from other disciplines or even outside the company. Sometimes this catalyzes change in the social behavior of the person, but not always. While that programmer may not be in a position to explore different interpersonal interaction landscapes, any difficulties they may in doing so will reflect on their job and their team. How many times have you had to deal with an obtuse, rambling and directionless bug report penned by a senior developer from other department?

The days of the lone wolf, the cowboy developer, are over. Those of you who are aspiring to be professional software developers, take note. There’s no real reason to keep perpetuating the myth of the non-social programmer; there’s no reason to keep being a non-social programmer. As our industry evolves, it will become more and more of a liability. Get out of the house; fight for you forty-hour work week and use the spare time to explore something that interests you other than hacking away in vi. Take some cooking or dance classes, join a landscaping club — if you’re a student, get a job as a TA and teach some supplemental lectures, or take public speaking courses.

And take “excellent communications skills” off your resume.