In Chad Fowler’s wonderful Passionate Programmer book (which you should buy), theres a chapter called “Be the Worst”.
Legendary jazz guitarist Pat Metheny has a stock piece of advice for young musicians, which is “Always be the worst guy in every band you’re in”
Chad spins this musical advice into advice for programmers.
Being the worst person on the team has the same effect as being the worst person in the band. You find that you’re unexplainably smarter. You even speak and write more intelligent. Your code and designs get more elegant, and you find that you’re able to solve hard problems with increasingly creative solutions.
I’ve tried to make a habit of this, and so far I think I’ve succeeded. You’d need to speak to my co-workers to confirm. I’m looking for a change in work right now, and its got me thinking.
The advice above is essentially saying be around people who are better than you, so you’re always learning. But there are a couple of issues with this.
Firstly, you’re good enough to be in the band at all. Chad talks a little about this in context. You want to be the worst guy in the first division, rather than the best guy in the second, but that assumes you have the requisite skills to be in the first division. Secondly, it assumes some relevance or connection between you and the others.
You can become a better saxophonist by playing regular jazz with a really good pianist, drummer and bassist, assuming they let you in to their band, but what if you really want to play drums. You can’t be the worst drummer in that band. They already have a drummer who’s good.
Maybe you go join a drumming group.
You’re surrounded by drummers who are better than you. You are the worst drummer and every day you work with better drummers and get better at drumming. But now you’re a junior drummer, and you’re getting paid as a junior drummer, and you’re playing basic stuff all the time, which is improving you as s drummer, but not really stretching you as a musician. Your expert saxophone status does not buy you recognition in that drumming group. You’re a beginner.
What you want is a bigger band. A band that already has a great drummer, but can hire you for your saxophone skills 6 days a week and indulge your desire to be a junior drummer 1 day a week.
A couple of times in my career I’ve wanted to change direction, and both times I’ve been lucky. My first proper Ruby job, my Java experience and Agile consulting work was enough to pay my way while I was a junior Ruby engineer working with a team of experts. My first proper iOS job, that Ruby (and the Agile work again) was enough to justify a senior engineers position and salary while allowing me to essentially be a junior iOS guy and learn the ropes.
I’m feeling like its time again. I’d like to be a junior something. Maybe Mac development, maybe project management, maybe something else entirely, but I have to find the right band. Someone that’ll happily hire my saxophone while I learn my crash from my splash.