Is perpetual Alpha/Beta really an issue?
I see this come up every so ofter, usually whenever someone remembers that Gmail is still in beta. The real question is why does this label bother some people? Gmail is a great product so does it really matter if the developers want to consider it beta and not version 1? Aren’t version numbers really obsolete in today’s world of web applications? What are they good for anyway?
It seems to me that version numbers are meant to unify a product together. Version 1 has a list of features and version 1.1 has a list of additional features and fixes of previous version’s problems. Every project has its own way of dealing with version numbers. Each chooses what an individual decimal place will represent and when to cut off a particular version. For customers, the version number serves as a guide. The higher the number, the more recent, and hopefully more improved an application is. It serves as a reason for consumers to upgrade their software. However, in a world where only one version of the application is running and is updated automatically, do version numbers really make any sense? The choice of which version to run is no longer in the hands of the consumer, but the developer.
Internally, the version system still makes sense. It enables developers to track their progress, set goals, and figure out when to update the web app. However, the consumers really just need to know when the app they are using has been updated and what those changes may have been, not really the version number. And this leads us to the discussion of alpha/beta labels.
It seems to me that alpha and beta labels are there to specify how much consumers should trust the software they are using and how much input they may have in its development. To me alpha signifies a very early release of a web application. Something that has some very basic (core) functionality but not much else. Developers that release web applications at the alpha stage are really asking for feedback from the user community. They want to feel out if a community is even there and what its needs are. These developers have an idea of where they want their web app to go, but are willing to adjust that vision based on the response. This is the point at which the software is most malleable, ready for customer to tell the developers exactly what they want. At the alpha stage, developers are allowing themselves to make mistakes that can be fixed by drastic changes. They are willing to just try many different ideas to see what resonates with their customers.
As an example, Graphsy (www.graphsy.com) is currently in the alpha stage of the process. It has basic graph drawing functionality, but not many bells and whistles yet. I have a plan of where Graphsy should go, but am very willing to adjust it to meet demand. Little of it is implemented yet, but the code base has been refactored three times now to insert new features as a response to user suggestions.
To me, the beta stage of the release process consists of developers trying to narrow down the scope of their features. At this point they have a clear road map of what needs to be done. This is the time when features are refactored, optimized, and tied in with other parts of the system. At the beta stage, new features are still implemented, but in support of the existing software. The beta stage is where debugging and optimizing really becomes important. However, the system is still a web application and thus still alive and changing. Therefore, the beta label starts to get muddled up. New and innovative features are still being added to the system, and those features need testing and customer response just like during the alpha phase, but the core of the web app is finalized and functioning normally. In a traditional, packaged, software development the team would have multiple versions of the system running, one leading up to a new release and the other representing the current release that gets updated and patched. In the web world one can do the same separation and run multiple versions of their system, but that is typically not the case. Developers tend to release new features rapidly to make sure their customers know that they system is growing and changing. They want their customers to be aware of just how alive their system is. Google has taken a slightly different approach.
In fact, Google actually has a very interesting system in place to separate their core systems from the alpha features. In Gmail settings there is a “labs” tab that allows users to turn experimental (alpha) features on and off. This is how Google can test out new ideas before they are integrated into the rest of Gmail. The Google Labs program can be seen throughout their products. Lots of new and interesting ideas are launched through Labs. On top of that, Google also runs SearchMash, a search site without the Google branding to test out new UI ideas.
So back to the original discussion about alpha/beta labels. The point I am trying to make is that alpha/beta labels serve as guides to consumers. Internally, companies have version numbers to keep track of their progress, but to signal that to consumers, they label these products as alpha or beta. So then is Google abusing the beta label by keeping Gmail in beta? I think they are. They have the labs program in place to test out new features. Gmail does not seem to be buggy and lots of people trust it enough to use it as their primary email program. Gmail has all of the core functionality of an email client plus a few other features, so what’s stopping Google from just saying that it’s ready for public consumption? I think a better question to ask is why should we care if Google wants to label Gmail as beta for as long as it sticks around?
I don’t think it matters too much. At the end of the day the alpha/beta labels are really just semantics. An argument can be made that by keeping ready software in a perpetual beta will eventually deteriorate the notion of what a beta really is, but so what? If alpha becomes the new beta, someone will come up with a new label for alpha (and probably get a lot of hits for the post in which they reference it). The point is that it takes a long time for a label to be established and a lot longer for it to change. So we’ll be ready. It’s already happening, how many times have you seen pre-alpha and pre-beta?
Well this is all my opinion and if you agree or disagree with it reply and lets get a conversation going.