Perpetual Betas and Version Numbers

I was just reading the notes on day one of OSBC over at RedMonk, and the idea of a perpetual beta sorta annoyed me:

Perpetual Beta: as popularized by Google, this is the notion that software is a process rather than an end state. But the key insight here was that the customer appetite for this dynamic evolution – which Adam Bosworth might term intelligent reaction – is likely to be proportional to the business importance of that application. In other words, Google News can afford to experiment in ways that Google Search probably cannot. I’d never thought about it in quite those terms, but it’s a good point.

Then I read through the Wikipedia article on release stages.

My understanding of the process might be limited, as a lowly sysadmin, but isn’t all software in some form of beta? A perpetual beta acknowledges that software is a process and not an end state? Maybe I’m missing something here, but DUH. As a software user for a good 15 years now I’ve learned this. Heck, my mother has figured this out. The advent of web-based applications has really muddied the water with betas and version numbering. Since a web-based application has a lot shorter release cycle (you do control most of the execution environment, after all) , putting a product in perpetual beta doesn’t seem like the wisest thing to do. Can’t we just call it version 1.0 and go from there?

It also seems like we’ve lost the idea of “alpha” with web-based applications. I know “beta” as being feature-complete but unstable. “Alpha” means that it isn’t necessarily feature complete. Why don’t we see a perpetual alpha release from Google? What is a product that is perpetually having features added to it, but it’s stable? It’s a normal software product, that’s what it is. Gmail is stable, but they keep adding features. Isn’t this more like alpha than beta? No, of course not. It’s just part of the process. So why not skip the whole thing and just give it a version number, like 1.0, once you are done testing it? We know it’s a process. We’re part of the process, and we’re cool with version 1.0.1, 1.0.3, 1.1.0, etc. especially since we don’t usually have to do anything when you go from 1.0 to 1.0.3, except rejoice in the new features or bugfixes.

Along these same lines, I just get annoyed when I troll through Freshmeat. People, if you’re going to bother with a release, and it is your first, call it version 1.0. We’re all cool with that. These sub-1.0 numbers are annoying, and to me they show that you lack confidence in your work. Why should I use it, then? Why did you release it? Plus, most package management systems have trouble with a leading zero, as in 0.9.7a. Yes, that’s you OpenSSL. For god’s sake, are you ever going to acknowledge that your software is stable and runs the Earth? Multiply your versions by 10 and ditch the damn letters. As a cheerleading squad would put it, it’s A-N-N-O-Y-I-N-G.

So, in short, get over whatever phobia you have about calling something 1.0. Grow a spine and take your stuff out of beta when you release it, especially if it’s a web app like Google News or Gmail. We know you’re adding things to it. When you release new versions those are 1.3, 2.0, 8.0.4, etc. No more of this 0.9.7a crap, or perpetual beta. It’s ridiculous.