Small companies face a constant tension between shoving new products out the door too early, when they're not quite ready for prime time, and too late, when the company has invested so much time, effort, and resources that it overdevelops the product and loses revenue and mindshare that it can never get back.
So when should you launch? And which side should you err on?
In my opinion, the answer depends in large part on two things: First, what kind of business you're in. And, second, whether you're charging for the product or giving it away for free.
If you're in a business in which a "sale" consists of a physical object leaving your factory and going home with your customer, the product has to clear a high hurdle--or you'll never sell that customer anything again.
If you're selling a service, meanwhile, or a constantly evolving product like a news web site, your product can be a lot less developed at launch.
What's more, in the latter case, you can actually benefit from releasing a product early, because your customers can immediately help you figure out how to improve it.
Google, for example, has made a career of launching products in "beta" and then continuing to develop them for years. The beta label tells users that the product may not be as polished as they would otherwise expect--and it invites them to offer feedback on how to improve it. Launching products this way also plants a flag and scares competitors away ("Google's already doing that!"), and it enables the company to start learning from real customers and users long before it would otherwise be able to.
With physical products, especially physical products that are sold instead of given away, the bar is much higher. If you blow it on a physical product, you can't fix the error with a keystroke--you have to actually recall it. And customers are likely to be a lot less forgiving of mistakes and flaws when they've shelled out real money to buy a product than when they're getting it free.
Even in the latter cases, though, there is a risk of waiting too long. No product is perfect, especially in the first iteration. If you wait to launch until you've developed a product that no one will ever find fault with, you'll go out of business long before you make your first sale.