Regular readers know that I often complain about products being constantly released in beta. More importantly, they seem to spend months or years in public betas–a departure from the traditional development model. Via Slashdot, here’s an article discussing this growing phenomenon:
As beta cycles at Google and elsewhere sprawl out into years-long affairs, some people are complaining that a crucial line between prime time and half-baked is being blurred.
“I feel like ‘beta’ has become a questionable term,” said Mary Hodder, a technology consultant. “Google and Flickr just leave it on their sites for years, so it cues us to think, beta, no big deal.”
I tend to agree with this Slashdot commenter. Is this approach a symptom of extreme programming, with its iterative development model?
It reflects the nature of web-based applications, and how easy non-web-based apps are to download with widespread broadband connections. There’s no need for (or, in fact, any sense to) the traditional “golden master,” this-is-really-final, we’re-going-to-duplicate-thousands-of-physical-copies 1.0 version of a piece of software when it lives on somebody’s servers.
So, just as Google or Flickr or whoever can fix a bug anytime, and everyone has the fix instantly, they can also release something that isn’t quite ready for prime time. Even the applications I do install (like NetNewsWire or Quicksilver for the Mac) can check for updates and download them anytime. The term “beta test” arose in a different time, when finalizing and updating software was an expensive process. It isn’t any longer, so its meaning has shifted accordingly.
On the other hand, it could just be a reflection of young, undisciplined engineering organizations. (Not unproductive, obviously, in the case of Flickr and Google.)
I don’t think the change in the meaning of beta is about web vs. non-web. I suspect that “beta” has become more a way of getting exposure for a product without the expense and effort of having to enter into any kind of realistic Service Level Agreement with customers. Luckily, for consumer services, this works out pretty well. But ultimately, if you are going to offer a commercial service, you have to be able to stand behind an SLA or you are going to end up in court more often than you would like – and so, burning CDs or no, you will need something approaching a “proper” software development cycle.
While intuitively, it may seem that web applications are easier to release “feature by feature” than traditional software that has “big bang” releases, I think that will only work for relatively small codebases and small teams where people are working on only one feature at a time. There is a limit to the number of people who can work on one feature, and so realistically if you want to scale up you are going to be developing many features at a time with different people working on each. This will probably dictate longer release cycles in order for everyone to sync up and stabilize the codebase.
(Disclaimer: I am an architect on a fairly traditional software suite which has an engineering team in the hundreds spread over six countries – and the _core_ dev and quality team that put together our last release numbered over 100 people. Most features were developed by five people or less. Our dev cycle was one year, which is stunningly fast for that sort of thing.)
Having worked on web apps for several years now, I can tell you that incremental releases simply never happen. We may not ship on a CD but we still go through a heavy testing and release phase and will roll out features in distinct chunks – the process is very similar to shrinkwrapped products.
As for the term Beta: it’s now no longer a development term but rather a marketing/legal one. Legal becuase it’s a disclaimer against any bugs that you’re likely to incur while using the product. Marketing because by labelling it beta, it appeals to those who like to think of themselves as early adpoters and who like to brag and say, “Whoa, I’m on the cutting edge! I use beta software.”
I found it interesting that Microsoft is forcing customers of MSN Messenger to upgrade to a “Beta” version of version 7 if they wish to continue using the product.