I believe that both programming and music are at their best when they are shared experiences.
We all have the image of the coder living in a basement, staring into their screen. The stereotype never has
any live human contact; they are a lone genius in monastic isolation. The programmer is driven by abstract
structures and the image of a perfectly engineered product. They probably smell a little.
We also all think of the musician locked in a practice room. For 12 hours per day - maybe more - they drill
every detail of a performance to perfection. The abstract structures of the musician's thoughts are not
But where the similarities really shine is when a musician steps onstage. A live performance is a
shared experience with hundreds of people. The performers and the audience feed off of each other, making
the piece into something much more powerful than notes on the page, greater than it ever was in the isolated
practice room. When we talk about music that changed the world, it's not the notes on the page. It's the shared experience
of a performance that made it happen, from the premiere of Tristan und Isolde, to Woodstock.
Code is also a shared experience. The lone basement-work that creates the Firefox web browser is all preparation
for millions of people to use it at once, constantly giving feedback and helping direct improvements. We write code
for the shared experience of using it. When we talk about code that changed the world, it's the group experience that made it happen.
It's not the code in the repo that changes lives, it's the users and contributors, from Twitter to Apache to Google.
In both code and music, the ultimate experience is shared creation. As moving as a concert can be, nothing beats
the moment when the whole audience sparks their lighters and sings along. It's why generations of families have gathered
to sing songs together, it's the reason for every jam band ever formed. It's also the case with code. The real power
of Open Source is that shared creation experience, when we build something amazing together with a group.
In both fields, it doesn't matter if you have professional experience or not. I don't want my sing-along
audience to have degrees in music, and I don't want my beta testers or documentation writers to be professional
coders either. In fact, it's the lack of professionalism that makes some kinds of participation tick.
Simply put, both music and code only grow when they are shared. Musical experiences are made real
in a group, and code is the same.
This is the unifying thought that drives my work in code and music. I try to bring the same message to both fields: