I'm Brett Slatkin and this is where I write about programming and related topics. Check out my favorite posts if you're new to this site. You can also contact me here or view my projects.

18 November 2013

Programming is primarily a social endeavor

I've always thought that good work speaks for itself, that programming is a meritocracy. The most successful software projects I've seen are just immediately and self-evidently awesome. These are the role models I hope to emulate. It goes back to the Jargon File:

It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome.

Recently I had a conversation with an engineer I respect very much about meritocracy. Their opinion surprised me: The quality of your ideas and code matters, but that alone will not convince others of your point of view. The very first thing you need to do is build relationships with people. Persuasion, even for software engineers, even in an assumed meritocracy, starts with the trust between individuals.

Thinking back to projects I worked on 4+ years ago, it's clear to me that this foundation of trust is something I have not understood. The worst example is a long and cynical story. I'll spare you the details, but the experience burnt me out and led me to a new project.

The gist: I was trying to convince another team to take a different approach to a problem. I tried to make my arguments with code, prototyping alternatives to prove my point. My suggestions fell on deaf ears. But that's because I was doing it wrong. I should have taken the time to build relationships with that team so we understood each other's perspectives. Without that we were talking past each other. I remained unswayed by their arguments, they ignored mine.

Looking back I feel pretty dumb. Now I get it: Persuasion starts with trust. If you want to convince people your idea is right, you first need to build relationships with them. If you build relationships, you may convince them you're right, or they may convince you that you're wrong. Either outcome is positive. This highlights what I've known for years now: Software development is primarily a social endeavor, not a technical one. The technical part of programming is just the setting for the real story.
© 2009-2016 Brett Slatkin