Creating great software is a lot like creating great music. Both require skill, practice, and technical knowledge. Both require creative thinking, collaboration and involve good judgment. Both have an end-customer. Both have a user-experience.
As software professionals we have deadlines. So do musicians. I think about being in a studio, engineer behind the console, producer on the clock, and you gotta create. Pressure… You often hear about the emotional war that takes place between band members, in many respects similar to what software teams go through. You want to add that great new riff you invented, and you search for a place to insert it but sometimes, you just have to save it for another day because it adds weight without value. Similarly, code bloat also occurs because a team member wants to make something cool happen in the code that does not add value. We often hear the words that musicians should “check their egos at the door”. This was made famous by Bob Geldof during Band Aid, the huge Ethiopian famine relief benefit. Bob insisted that the event was not about the musicians, but about helping those in need. As software professionals we can all take a page from that book. Set our egos aside. Create something of value for our customers. Celebrate the success together. Learn from our experience and make the next one even better.
Musicians and music evolve. The best music is created during times of upheaval, when the economy is bad, or there is political unrest. The best product innovation happens under the pressure of deadlines and resource starvation, when we are forced to change because of a shift in conditions or perspective. My favorite projects, the ones I look back on with pride are those where things seemed impossible, we had limited resources, had a fresh perspective, and we delivered the goods.
Under time pressure, with low resources and a change in context, you often have your most creative moments and breakthrough innovation. A good part of generating great innovation is to deliver a cocktail of conditions that can be created in a band as well as in a software team.
Imagine how much worse music would be if one person wrote out all the parts, and each band member recorded their part and handed it off to the next musician. At the end, you’d put the parts together and what you’d have is something resembling music, but devoid of all the interactive creativity that comes from being locked together in a room and relying on the diversity of skills, talents, and the creative idea generation that comes from the individuals and interactions.
Are you creating the conditions for great performance? Are you building great teams that bring together that special chemistry that makes something amazing emerge from the mundane? Are you creating the sense of urgency and starvation that forces us to think differently? Think about cross-functional teams, time-boxes, iterative evolution of ideas, and the continuous integration of those ideas into a cohesive, single user experience that could be a the best song you ever heard, or the coolest product you ever used.