I met a student recently who was looking for a software engineering internship. As I often do in these situations, I asked him to describe a cool project he worked on. He trembled slightly, adjusted his thick-rimmed glasses, and began speaking in a barely audible, breaking voice.

What followed was a painful experience, for both of us. He was clearly pained by having to speak, while I was clearly pained by having to strain to hear him. And boy, was he hard to hear. The guy was basically whispering while standing about a foot away from me and looking down at his feet the whole time.

In an effort to hear him better, I moved in a bit. He moved back. I moved in again, he moved back again. I leaned in, he leaned back.

After jointly moving a few feet downstream, I was finally able to get close enough to hear what he was saying. As it turned out, he was describing an incredibly complex and very impressive project he developed, basically on his own.

Obviously, this guy was smart enough to be a good developer. But was he social enough?

The Good Old Days

Until just a few years ago, being a developer meant spending most of your time alone. Sure, there was the occasional meeting with the boss, other devs, or, God forbid, actual users. However, most of the day was spent with only the keyboard and a pair of headphones to keep you company.

As a result, devs didn’t have to be social. In fact, many viewed conversation as something to minimize, if not avoid outright. After all, coding was a solitary activity and your got paid to code, not socialize.

And then came agile.

The Good New Days

Agile practices impacted the daily life of a typical developer in many ways. We write more tests, seek simpler designs, and deliver more robust software. And we collaborate.

Even if not pairing, devs in agile teams work together constantly. They discuss designs, share ideas, look at each other’s code, fix broken builds together, and so on and so forth. To do all that, devs have to be able to communicate, to be heard. As odd as this may sound, devs have to be at least somewhat social.

Now, there are certainly development jobs where working on your own is allowed, if not expected. That said, I do believe that the industry as a whole is moving towards collaborative development.

Which brings me back to the student I was talking to. What advice could I give to help him in his quest to become a great software engineer? How do you tell someone who is that shy to change? What could he possibly do to change? Or is it too late?

You may also like:

Did you love / hate / were unmoved by this post?
Then show your support / disgust / indifference by following me on Twitter!

This post got 9 comments so far. Care to add yours?

  1. Daniel says:

    I am to shy to give an advice too such a wise blog writer.

  2. Graeme Bradbury says:

    I don’t think it’s too late.

    TI think a great approach would be for a shy developer to join a UserGroup for a technology they love. It’ll put them in a social situation when they’ve got alot in common with everyone around them, and where the typical attendee is there to learn and share knowledge giving plenty of opportunity to “break the ice”.

  3. Dave says:

    I think you’re making a mistake judging someone’s social skills solely on a first meeting. I think it’s pretty common during an interview for people to come off as antisocial and be perfectly fine with their peers. I have those tendencies myself with people I don’t know, but after a couple of days I’m fine.

    • Alex Tatiyants says:

      Thank you very much for reading Dave. I agree with you, but to a point. You can be shy and still get your qualifications across in an interview (I’ve had more than my fair share of those). However, the type of shyness I’m talking about is one that actively sabotages your candidacy because you just cannot communicate.

      • apotheon says:

        There’s a difference between “the type of shyness . . . that actively sabotages your candidacy because you just cannot communicate,” and “have difficulty figuring out how to brag in an interview without sounding like bragging, leading to on-the-spot terror that sabotages your candidacy,” and it’s a difference that is not very easily detected during an interview. Interviews are, themselves unique situations where social pressures apply that apply nowhere else, and may cause significant anxiety. I don’t suffer the level of anxiety you describe for the example candidate, but I can definitely sympathize to some degree with the feelings of uncertainty I described in my second description of interview shyness, such that I can imagine it’s possible the candidate in question might even be downright outgoing in day-to-day working conditions even if basically incapable of communicating in an interview.

        When what you describe happens, I wonder if inviting the candidate out to lunch with the team, where everyone understands they’re welcome to talk about technologies but not to treat the lunch like an interview per se, might draw the candidate out in a way a formal interview would not.

        By the way, my own social dysfunction in interviews is tied to the fact that, on the spot like that, I doubt anything I’ve done is worth sharing. I tend to forget that most professional developers suck so badly that describing a clever “hello world” would outshine their personal accomplishments, and end up thinking that my contributions to open source projects are so underwhelming that mentioning them would only make me look bad. I don’t tend to have this problem outside of interviews and similar contexts where being judged is an explicit part of the interaction, though.

        I think a lot of good candidates get passed up for jobs because interviewers don’t understand that job interviews are nothing like the rest of life for at least some candidates, and as such the candidates get judged on criteria that, in their cases, apply to nothing at all other than the ability to get through a job interview. Meanwhile, some really crappy candidates are great at job interviews, and suck on the job.

        • Alex Tatiyants says:

          Thank you very much for your comment apotheon, you make some excellent points. I completely agree that interviews are socially awkward and can cause significant anxiety. I also worry quite a bit about passing on good candidates because they interview poorly. Finally, I really like your Lunch style interview suggestion as a potential antidote to shyness.

          • apotheon says:

            Bummer. I made a comma error, and my sentence structure tends toward the overly complex.

            Anyway . . . I actually had a job interview at one point where I was taken out to lunch with the team. The obvious purpose of the lunch (and it really was obvious) was just to see how I meshed with everyone else on a personal level without touching on any technical matters at all. I’m not sure whether technical discussion would be a good thing or a bad thing overall in such circumstances; the answer might depend on the individual interviewee, in fact. I also did not have the problem of failing to express myself during the formal interviews themselves before the lunch. I’m pretty sure the lunch was part of what got me hired, though; they later remarked that the team quite liked my sense of humor.

            If I had to guess, I’d say that (for the most socially crippled introverts during interviews) the best lunch tactic would probably involve an interactive discussion about technical matters. I’m an introvert with the ability to fake extroversion at times, and I can tell you without any doubt that it’s a lot easier to fake being socially outgoing when the discussion is focused, technical, and related to something I find interesting, because then the conversation is more about the subject matter than the social factors involved. Focusing on technical issues is easy for most introverts, especially those you’d be likely to want for a technical job (of course). The key to my ability to fake being socially outgoing is my habit of turning social interactions into discussions of matters on which I have a keen interest, usually pretty easy to do because I have a very wide range of interests; if the job itself relates to things I find interesting, I can end up being a very socially active member of a team without any effort at all.

            Of course, I’m generalizing myself to other introverts (particularly shy introverts, where I’m kind of a non-shy introvert) quite a bit, which may be prone to some error, but I think the same principles probably apply to varying degrees.