“Version 1 of a product should crawl. This means it should do the bare minimum to be recognizable as what it’s intended to be. If it’s supposed to be a foo, and someone could look at version 1 and say, “That’s a foo,” you’re done. Ship it.
Version 2 should walk. This is where you add enough functionality that the product is useful in day-to-day life. This is not the time for polish. Basically, it’s just adding the things that most people insisted should have been in version 1, because without them, they said, the product is completely useless. They were wrong then, but they’re right now.
Version 3 should run. This is where the product hits its stride. What it does it should do well. It should be comfortable to use. It should be strong, polished, and effective.
Version 4 should fly. This is where the, “Oh man, wouldn’t it be awesome if…” features get added. This is where you start implementing things that aren’t necessarily useful now, but have a lot of possibility. “
I’m sorry, I just don’t buy it. The product, that is. Having been in cash-strapped startups myself, I understand the need to hit the market fast, and start generating revenue… but I am a Customer, too, and as such am sick of non-working products. It’s frustrating to waste time installing, learning the damn thing when it’s really just a Beta! Give it to someone who signed up as Beta-tester, not to me, a Customer.
“Give me what I want or I am out of here” – says Seth Godin. In our case it means: Uninstall, don’t look back until 2 releases later. Quite a way to build a happy customer base.
Update (8/31): “When a Beta Isn’t Enough” by David Beisel is worth reading.
Update (11/20) : “Web 2.0: Web of Beta”