George Lucas has been quoted as saying that "A movie is never finished, only abandoned." This is actually a profound insight and makes a lot of sense, because creative people always want to refine their vision to be as close as possible to the perfection they envision. The trouble is if their work is to ever be seen, they have to turn it loose when it is as far past "good enough" as they can afford to go.
Forgive a small digression, but now that I've written that, I think it raises the question of what perfection might have to do with Lucas's films. "Star Wars" junkies need not write in to complain -- for them, I have three words that prove my contention: Jar Jar Binks.
Anyway, the same principle of abandoning rather than finishing applies to the development of software and online services. Developers are given a vision of the goal, and at some point they judge that they are close enough for the product to be used in earnest.
The challenge for real developers is they always know their code can be improved to be faster, have a better user interface, operate more reliably, have fewer bugs, whatever, so they have to, in effect, abandon the product.
Let me ask you: When you buy a piece of software and a patch comes out, are you surprised? Unless you are naive or kidding yourself, you know the developers aren't perfect.
Given the constraints they worked under -- the planned release schedule, budget, availability of Twinkies and Jolt, and, crucially, how long you were willing to wait and how much you were willing to pay -- they did the best they could. A patch is simply to fix whatever got overlooked or wasn't discovered after the version you purchased.
And then there are upgrades. Be honest: Are you ever surprised when a vendor tells you that a new version with added and or improved features is available? Of course, not! Unless you are a complete newbie, you know (and hope!) that improvements will be made and bugs found and fixed and that, unless the product bites the big one, the new and improved features will become available.
So, what is all the complaining and cynicism over all of the Web services that are labeled "beta"? It seems that every week someone is taking Google or some other company to task for appending "beta" to their offerings.
I just read a column on CNet titled "Beta - the four-letter word of Web 2.0" by Caroline McCarthy. She contends -- and she's not alone -- that "beta" means "If something screws up, it's not really our fault." She quotes Dina Kaplan, co-founder and COO of Blip.tv as saying, "It's a wonderful cop-out. . . . If a tiny feature doesn't work . . . you can just say, 'Oh, we're in beta.'"
What is curious (beside the facts that Blip.tv is in beta and that Kaplan admits that her company should move their service into a 1.0 release) is that labeling something beta is just like giving a product or service a release number or letter: It doesn't actually mean anything.
What matters is that the product or service works to a level that meets the terms you accept when you license it. This isn't an unusual constraint: Most products include a limited liability and warranty from the vendor. For example, if you buy a Rolls-Royce, take it off-road and come to grief, I think you'll find that the terms and conditions of your purchase mean that when your ride has been pulled out of the ditch, you'll be on your own. Caveat emptor.
What we have to recognize is that we live and have always lived in a beta world. Everything about our culture, from movies to cars to software and services, is a work in progress. This is why in the IT world we are paid for our ability to evaluate these works in progress and determine how to build effective systems out of them, keep them running and figure out how to fix them when they break.
To rephrase George Lucas for a broader view: "Products are never finished, only abandoned." At least in IT we have had nothing like Jar Jar Binks. Well, except Microsoft Bob.