I have a confession. I’m an insufferable know-it-all. If you’re reading this post, there’s a very good chance that you are too.
This really shouldn’t be surprising. Developers are often smart people. Smart, in the sense that we’re able to direct advanced electronic machinery to carry out awe-inspiring feats. And we know it.
We tend to stand out. We’re that kid. The one in math class who raised his hand with all the fury of a thunderbolt so that he could have the chance to prove to his classmates just how brilliant he was. As much as we envision ourselves as noble knights on a quest for knowledge, our true motivation is rarely so virtuous. At our core, we want what all humans want. We want attention. We want to gloat. We want to be right.
Yet despite our intellectual powers–or perhaps because of them–we are blind to critical lessons about social dynamics. Nobody likes that kid. Nobody likes being told that they’re wrong. And can you blame them? It’s obvious if you think about it, but we’re too busy chasing cerebral glory to care whether we stepped on someone else’s feelings while we were enlightening the world. So we never learn to play well with others, at least when it comes to how we work with math, logic, computers.
And for most of our lives, that’s not actually a problem. Our teachers are genuinely pleased. They’re so relieved to have a student take their lessons seriously for once that they shower us with recognition. If only all of their students were so attentive! The other kids might give us a hard time for our arrogance, but we’d rather isolate ourselves than acknowledge the validity of their resentment.
Computer college teaches us plenty about data structures and algorithms. But even there, surrounded by other smart, technology-oriented problem solvers, we rarely learn anything about humility or cooperation. For the most part, academic computer science is an individual sport. There might be one or two group assignments, but nothing so involved that it challenges our illusions of self-superiority or forces us to recognize the strength of someone else’s ideas.
By the time that we graduate, our concept of the world is firmly entrenched. Society is nothing more than a contest of ideas, and our own ideas are poised to win it. After all, look how many A’s they’ve earned us. At every step along the way, the education system has reinforced the notion that we can succeed on the merits of sheer brainpower. Logic and reason supersede all else, which is fortunate, because we are such superb logical thinkers. Right?
Welcome to Startupland. We’re in for a shock.
Ultimately, nobody is to blame for smug engineers but the engineers themselves. Still, the environment of our upbringing offers us few opportunities to fail, and therefore few opportunities to learn. We never cultivate the otherwise obvious interpersonal skills that are so vital to success in the professional world. Because we never have to.
This is a big problem. And unfortunately, I don’t have any great suggestions for how to address the root causes. Changing society is hard.
Nevertheless, just because we were raised to be smug doesn’t mean it’s okay to stay that way. Simply by recognizing our empathic ineptitudes, we’ve already begun the journey towards overcoming them. But there is still a very long way to go. In my next post, I’ll cover the part of our job where I’ve seen engineers fail the hardest: code review. And I’ll offer a few pointers on avoiding the antisocial missteps that seem to befall all too many developers.