You've Got No Arms!
When it comes to shipping a product, I believe successful companies fall into one of two camps: One, get the core of the product in as complete a state as you can, button it up and get it out the door, with the expectation that some finite amount of time later (note: must be < 1 month), you’ll have another revision ready to go; or, two, make sure every element is wrapped up as tight as can be and absolutely nail it.
On the Internets, I think the former is the camp that most people fall into. For the real world, I think most fall into the latter bucket. Some examples:
- <Insert Car Company Here>: 3-5 year lead times to do anything. Look at how hard they’re all STILL pushing SUVs for examples of that. The profitability of these platforms aside, they have a ridiculous amount of inventory that they don’t know what to do with because they were all planned when gas was at $1.75 a gallon. See Dodge’s deal for 3 year $2.99 gas when you buy a new car as an example of how desperately they’re trying to sell cars designed for 3 years ago.
- Apple: Clearly in the latter camp. Anything that involves case tolerances to the millimeter or designing a new language to describe your designs is probably not release early and often.
- Google: Interesting hybrid. Until recently, for example, in Google Docs you could see a version number in the lower right corner of your spreadsheet (if you view source, you can still see what I believe is that number, “1.3.2z”) that indicated they revved a LOT. So frequently that it required a sub-version number plus a letter (giving 260 version under each major version, assuming they don’t go up to higher digits). Of course the interesting thing is that they’re not very public about their many releases, meaning they appear to be very stable.
- Microsoft - (Note, I am a former employee.) Interestingly, I think they’re a notable hybrid in the opposite direction. They release slowly, with large time gaps between major releases, but do a lot of small releases in-between that they are almost too public about (monthly security fixes, service packs). The problem is that they’re ultimately trying to serve two masters: corporate IT who want slow and steady releases, and every geek in the world who wants instant new releases with great new stuff. (Actually, a there is a third constituency: the 95% of the world who just want it to work when they want it to work, but also want it to be fun when they want it to be fun.) I say “almost too public” because it always gets people waiting for the next thing, which is annoying because then people aren’t using what they have right now, which just happens to be pretty good.
- <Insert any company using the term “Alpha/Beta” on their website>: Release early. Release often. Repeat.
The thing you cannot do, is be half-assed about choosing one or the other camp. For us, I’m putting us clearly in the latter camp. Joel Spolsky and Jeff Atwood (of joelonsotftware.com and codinghorror.com, and most recently stackoverflow.com) talked about this in a recent podcast: Stackoverflow Podcast #9
Unfortunately, the transcript is incomplete, but they talk about how the arms and legs may be missing, but as long as the heart is there and there’s a head, sometimes it’s okay to go outside. That’s what I want for this website: just make sure the hearts in the right place, and ship every two weeks (mostly), and everything else will kind of work itself out.
BTW, one of our favorite sounds on the site right now is this ridiculous crow sound:
I don’t know why but it’s taken our office by storm. I’m very seriously considering it to be our mascot.