A Social Developer
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?