Thursday, November 15, 2012

The Importance of Shipping Software

I play piano.  Well, not really, but I like to practice a lot.  Alone, I think I play rather well, but when I try to play in front of someone, it’s like I’m brand new and fumbling over every key.

The more people I’m in front of, the more I fumble.  It’s a funny thing how an audience heightens every mistake.

I also golf.  Well, more like hack.  But I am a better golfer than I am a piano player.  At the range, I can hit flawless shot after flawless shot.  If I immediately go to the course, all that talent I found at the range immediately evaporates.  The fact that I’m not as good as I think I am is a harsh reality.

Golfing on a course and playing piano in front of others does two key things for me.  One, it shows me where I’m struggling, because every mistake is amplified.  Two, it shows me where my actual weaknesses are, instead of my assumed weaknesses.  The more eyes on something, the more reality is impossible to avoid.  

Dealing with reality, instead of fantasy, is the central reason why developers must ship working software as often as possible.  The more they do that, the more they will enjoy it, the better they will get at it, and the more value they will provide to your users, customers, and employees.