Categories
Software Engineering

If you wanna be a great musician, you gotta know how to play with the band.

This is a software engineering analogy. Even if you can play the best guitar solos in the world, you’re pretty useless as a musician if you can’t perform with the rest of the band.

Great software engineers are great collaborators

This mentality sometimes comes as a shock to new engineers. People often sign up for this career path because they imagine its 99% technical and 1% collaborative, but in my experience that’s not even close to correct.

I once worked on a team where it was about 80/20. Everyone would show up and contribute in meetings, then retreat to their silos to work independently. The effect? Well for one, there were a lot of code conflicts. There was a lot of siloed knowledge. We spent a lot of time fixing bugs. I think the worst effect, and ultimately the main reason I left the team, there was no growth.

I think the really effective engineers are collaborating least at 50% of the time. That means contributing in meetings (not just attending), pairing or mobbing on features with other engineers, contributing to code reviews, and participating in design/modeling discussions. This also has the nice side effect of every team member continually improving their technical skills.

When it comes to software teams, there aren’t a lot of solo gigs. In software there are just too many pieces and too much complexity for an individual to be successful on their own. So you have to be able to play with the band.

A tale of three musical acts

Imagine three bands. The first band has five gifted musicians. Each one is an amazing soloist. But each one also thinks they carry the band. Never meeting to practice, they only communicate over text. Each band member does practice diligently on their own, but occasionally works on the wrong songs because of text message miscommunications.

Band two has four decent musicians and one prodigy guitarist. The prodigy doesn’t listen to anyone else in the band and constantly threatens to leave the band if their demands aren’t met. They are derisive to ideas from band-mates and often don’t show up to scheduled events. When they get paid the prodigy also demands a higher cut than the other members.

The third and final band is five decent musicians who really get along. None of them are prodigies but they all work hard on their craft. They all care immensely for the band and each other. They don’t have any contempt for band-mates with inferior skills and are forgiving of mistakes. They meet and practice together every day. They really enjoy trying out each others ideas and are honest and open about problems with their music or output. Sometimes they trade instruments for certain songs and are all happy sharing the spotlight.

Now, I’m not going to ask you which band you would rather listen to. Because if you’re a software engineer, you’re not the audience here. The question for you is which band would you rather play with? I hope the answer is as obvious to everyone else as it is to me.

Concession to brilliance

If you really are a prodigy, and you’re that good, then I have to concede there are places for you in the engineering world (not where I want to work) where you get to live the soloist life. Some people thrive in that environment. But in my 8+ years working in software, I’ve only met people who think they are that good. They will usually let you know. The true unicorn rockstar engineers I have worked with all know how to collaborate, trust, and work with other people.

Leave a Reply

Your email address will not be published.