If you can’t talk, you can’t program

Thanks to Danielle Thesis for pointing out this excellent article pointing out the advantage of cities in growing social skills.

Where the Skills Are

Human progress, to a large degree, has depended on the continual expansion of social networks, which enable faster sharing and shaping of ideas. And humanity’s greatest social innovation remains the city. As our cities grow larger, the synapses that connect them—people with exceptional social skills—are becoming ever more essential to economic growth.

As a software engineering manager at a University I often lament that we have no technical challenges, only relationship challenges.  While not entirely true it’s true enough and more often than not the big obstacles we run into have more to do with our ability to communicate, related on a project.

Software is no different from many careers in that it’s a victim of automation.  Gone are the days where a programmer could pull down 60 or 70k a year writing login pages for their institution and that leaves is in a place where software engineers are focused on real technical challenges of a project.  More challenging still is that project owner usually only come to a software engineer when software doesn’t exist that already solves their problem.  So what we most often end up with are people talking to one another with varying degrees of certainty about what they want, often only knowing it’s different but unable to explain exactly how.  In these situations, social skills are arguably more important than programming skills or at the very least more immediately important because if you can’t bootstrap a conversation you’ll never be able to get enough information on what needs to be done.

In these situations it’s also incredibly important to maintain relationships over time.  As Agile proponents love to point out, needs change and software engineering projects need to stay flexible to make sure they’re addressing the real needs of a project and play a major role in helping project owners better realize what those needs are as they see working software.  In this way it’s a highly interactive environment where each conversation, interaction, software release and discussion evolves and advances the overall direction of the project, sometimes in very significant ways.

For me a big litmus test of how well developed the social skills of a project team are comes when I observe how they handle “Gee, I don’t know” or “Wow I was totally wrong about that”.   A team with a high level of trust and well developed social skills are going to take those moments and use them to do something great with the project.  Teams with poorly developed social skills are going to get stuck.  It’s often as simple as that.