I’ve played music for twenty-seven years. I started out playing the Cello when I was eight and later moved on to the guitar when I was about fourteen. Since the age of 16, I’ve been playing live gigs in various bands. I’ve completed a couple of UK tours in previous bands, and even a European tour with the Birmingham-based punk/hip-hop band Scarred Society. I’m not the most talented or successful musician out there by a long shot, but it’s something I’ve always enjoyed.
I’ve been a software developer for two years now. You might not think that there was much crossover between being a guitarist in a punk band and being a software developer, but I’ve found many of the lessons learned to be extremely useful. Here are a few:
- Don’t covet your creations
When playing music I always want to be moving forward. I never want to be one of those bands that plays the same ten songs for twenty years. It’s easy to get precious about your songs, especially when a band breaks up, but I’ve learned to let go. I can always write better songs. I’m always learning and need to trust that my skills have improved.
Letting go is important in software too, you can’t be precious about other people editing your code if you’re working in a team. Create it, and let it run free, you never know when it will need changing and by who, but you have to trust your team-mates, that is what team-work is all about. Another way of putting it is “trust yourself rather than the code base”. - Make mistakes
Don’t worry about trying something new. Writing software is a lot like writing music (hear me out), you can get stuck re-using a formula that works, and it’s important that things DO work but make sure to spend time trying new things. In the same way as trying something weird in the practice room: if you have a bright idea, go with it, it might make the code or product better and you might learn something. You might write a really great song. - Improvise
When gigging, things go wrong. Amplifiers break, guitar strings break, cars break down, someone forgets a speaker lead or the time slots get moved. Sometimes all of the above happens. The important thing is to keep the end goal in sight and think “How can we still get there?”, “How can we still play this gig?”. Again, this is true in software: you might deploy a new version of the system that relies on a database change, only to find out there’s a serious bug. You can’t roll back because you’ve already migrated the database to the new structure, so you need to be able to think calmly: “How can we still get there?”. - Balance
This has somewhat become our mantra in the Systems team, and it’s one of the pillars of Colonel Duck. It can relate to the balance between showmanship and playing the right notes. If you start going crazy and rocking out it can be detrimental to the sound if you make mistakes. You have to stay in that comfort zone where you can do both. In software, by all means try new things (as above), but be aware there’s a time and a place (in the practice room). Use common sense and if you have a limited time allocated to work on something then do it in a boring way that has less chance of something going wrong. - Use your life lessons
It’s not just playing in a band, any life experiences will teach you valuable lessons that you can draw upon. You will find they are applicable in unexpected situations, so trust your instincts!
I still play music and I’m currently getting a new band ready for the road. Perhaps I’ll find lessons from my new career that go the other way too, and enhance my favourite hobby. At work, I’ve also drawn upon my other previous experiences working in customer service, or fixing people’s computers. It’s nice to know that none of that time was wasted, so if you’re an aspiring software developer take solace!
— Mike Gregory
