John Gruber has put up an interesting piece discussing the fact that releasing a piece of software as “Beta” is absolutely no excuse whatsoever for it to be full of bugs.
This has been addressed before by several other people much smarter than myself, including Joel Spolsky who, WAAAAYYYY back in the day (July 2001 – yes, I really have been reading his articles for that long) had this to say:
Anyway, getting good software over the course of 10 years assumes that for at least 8 of those years, you’re getting good feedback from your customers, and good innovations from your competitors that you can copy, and good ideas from all the people that come to work for you because they believe that your version 1.0 is promising. You have to release early, incomplete versions—but don’t overhype them or advertise them on the Super Bowl, because they’re just not that good, no matter how smart you are.
For the record, I’m not saying anything about Disco in particular (the particular app Gruber was commenting on), I’m talking about the broader world of software development in general. Although, I downloaded Disco to try the smoke feature, and was disappointed that it wouldn’t show smoke on my MacBook—so um, it got zapped.
At any rate, there is a fine line between releasing a quality product that still needs a bit of spit and polish, and releasing software that utterly disappoints the end user. Unfortunately, that fact can put a lot of developers / startups between what some might call, a rock and a hard place, the reason being that unreleased software that stays unreleased is essentially worthless, and released software that utterly disappoints end-users is essentially worthless. With the former, you have nothing, with the latter, you likely have a lot of frustrated end-users who have blogged about how bad your software sucks to the entire world, and even if you do get around to releasing a version that doesn’t suck – the damage is likely already done—and very difficult to recover from.
So the moral of the story is: Release early, release often – but not until it’s ready..