Being in a band made me a better software developer. vice versa.
I’ve been playing guitar for almost 12 years now, and it affected my perspective about software development, commandership and team leading.
Since I was in the 6th grade, I wanted to be a rock star. My closest friends and I formed a band called Spitfire around that age. We played together as a band until we all joined IDF. We all had our difficulties adjusting to an army discipline, and it was our first time being so far away from each other.
Being in a rock band while you are in high school may sound awesome and fun, but it takes a lot to actually make something out of it. We didn’t want it to just be our hobby, we really wanted to be rock stars. So we had a lot of shows, and I mean, A LOT. We practiced 2–3 times a week, without counting the shows, we were always together. It was beautiful.
Team-work comes first
Being in a band is very different from being a singer or being a random YouTube artist. You have to do things together and you have to decide together how to do it. There is an obvious democracy in a band, and the more people in your band, and the more diverse your band is, the more conflicts you will have. AND EVERYTHING IS FINE. It is okay to argue, it is okay to have conflicts, as long as you talk about them and resolve them eventually.
In our day to day work, as software engineers, we can get emotional about all sorts of things: code quality, standards, solutions, paradigms, architecture, etc. There is no reason to cancel someone’s opinion just because he thinks differently. There is no reason to decide for someone else what is good for him.
Remember: your opinion is not the only one, and even if you have the mandate to veto, try to avoid using it. You should always show that other people’s opinions are important as well, and may even lead you to that decision. Never ignore other people’s opinions, because your product is your byproduct, and your people are your product.
Our main product was the band, not the songs. As a team leader in the IDF, my main product was my developers, not the application I developed.
I always have been a sarcastic person. But nowadays, I’m much more aware of people that might get hurt by my sarcasm. I used to be very self-centric person and luckily, thanks to my army service, this characteristic has changed.
People remember. Our lead vocalist, Meital, will probably always remember me as that douchebag who gets angry very quickly. Our drummer, Assaf, will probably remember me not as the nice and accepting person I am today, but as the one who yelled at him because he couldn’t understand and realize what Asperger syndrome means at age 17.
As a commander, I have to be aware for my actions and the things I say, and I have to take care of my soldiers, 24 hours a day. Therefore, on my very first conversation with every soldier I had, I always said I’d be happy to listen to every struggle he might have, and that I will even try to help. However, my knowledge is limited in this area. So I always recommend on going to a mental health officer which we get for free in the army, to get some professional help, whenever they feel flooded. And after I tell them so, I make it clear that there’s nothing wrong with it.
As it is so easy to hurt people without even noticing, we have to be very aware to our people’s problems. If we can, we need to help them so they overcome their struggles. Again, with extra attention, because without even noticing, we can cross the line to the point of no return.
There is no point of no return
Yes, I just said that you can cross to the point of no return. I lied. It’s just a really long way to return. Think about it, you might have changed over the years, but so did the others. Most people would like to change the way they think about you, because people want to resolve conflicts. We all want to get some balance in our lives, and remembering something bad in our past prevents getting balance in our lives.
Are you afraid of people pointing to that one time you were an asshole? So don’t do it yourself. If you want to settle an argue, there is no reason to pull out a situation from the past. The best way to settle argues is by talking about the future. Try it. You’ll see the other side of the conflict will immediately be more relaxed — and you both will turn this argument into a brainstorm or at least a conversation.
Every aspect matters
Software development of not just about writing software. This is what I love the most about it, but it’s not the only thing and therefore, there are much more things to do around software to make us less bored from writing software.
Most of the apps I worked on had a small interesting part that initially interested me. After writing this one part I had to do things that we do to any app: maybe exposing it through HTTP, validations, logging, error messages and even write READMEs and “promote” the projects. These things are boring, so I always try to reinvent the wheel and think about a different way of doing them.
This things happen in music too: most of Sum 41’s songs share the same chord progression and even the same melody. Try to listen to the bridge part of “In Too Deep”, and then to the main guitar riff of “Still Waiting”. They share the same melody. At least third of the songs from the album “Does This Look Infected?” share the same chord progression.
Just like Sum 41’s chord progression isn’t the whole picture around their songs and albums, so is the way you develop your software. Every Sum 41 song has a unique hook, and software is no different.
If Ruby on Rails, for example, makes you productive and fits perfectly into what you develop, just use it. Yes. It is sexier to write your own stuff. But coding is not our goal, it is just the way to our goal. Making software is our goal. Your job is to serve to product, not the other way.
Compose ideas together
Big bands, like Linkin Park, usually write 100+ songs for a 13 songs album. Once they have 100+ songs, they all sit together and decide which songs should actually be in the album. Only then, they start to produce the songs.
In software development it can be the same. For every new feature, start by creating an issue for it and try to discuss about it. You can add a simple proof of concept or a mock so people will understand the feature’s scope.
As every feature makes your software more complex, you should treat them like they most likely won’t “make it to the album”. The features who haven’t made it to your app are just in an idle mode until the product will need them, or that the feature’s idea will be more mature.
You never give up on features, and you never give up on songs.
Publicity is important
The only way to get more fans and to spread out your music is by performing around the globe. Back at my high-school days, we used to perform almost once a week. We nagged our friends so badly so they come and cheer us, and we made lots of friends by doing so. Actually, I think that most of my friendships of Facebook are musicians or music lovers I met while performing around Israel.
Software development is the same. So many great people who would like to be your friend, or to work some day with you, or even just to chat and exchange ideas. Come on and schedule a talk in a meetup near the place you live or work and invite friends and co-workers to watch you talk about something that you have passion for. That’s the only way to spread your wisdom and passion.
Many people write on their twitter bio “My opinions don’t reflect my employer”. Of course they don’t, you are a human being. You can lead software engineering even without a team leader title. Thoughts and actions are much stronger than job titles, and people never have enough from a great thought leader that inspire them.
So basically, the best way to get people to follow your voice, is by following your own voice. Shocking, I know.
And… Love your product
I often hear from producers that “if you don’t like to listen to your own music, you’re doing it wrong”. That’s the exact thing I’d like to write about last because it really connects being in a band with software development, in my opinion: the passion for your products.
As software developers we might not be so lucky and work on a product we use daily, such as Facebook, GitHub or Twitter, but we still can be proud of our work.
I know too many people who actually hate the code they write daily. This is wrong. Code is an artistic way of solving problems and you can’t be an artist if you hate the art you make. You will burn out really fast and your work won’t be as good.
You don’t like the product you are working on? Try to add some of your ideas into it. Try to add your touch and to spice up the codebase with new things you learned. Try to make some part of the product “your baby”, because that’s the way to be really happy with what you do.
It doesn’t matter if we are rocking the stage or the keyboard, we are all rockstars eventually.