Time to Start Versioning Web Applications

It’s clear to me with every newly released version of a web application that we need a mechanism for users to choose which web app release to use.

With the rollout of new features in Facebook and this week the new ReTweeting feature in Twitter, users acted negatively to these new features. For some of features, the company would eventually have to roll back the new feature(s).

However, some users actually like the new features and want to keep them. It’s a lose-lose for the company rolling out the new feature. Not only because some users are upset but also they also already lost all the effort going into developing and deploying those features.

From the start, the concept of versioning was missing from the web, mainly because we were using web sites. Now that we’re using web applications, I don’t see why we can’t keep track of application versions.

Let’s differentiate between two kinds of updates, Minor and Major. There are some updates that are important to be deployed to everyone like fixes, security updates, and performance improvements. These updates are ‘Minor’ updates that have to be applied to everyone. Other updates that include rolling out new features are ‘Major’ updates that users login one day and say to themselves “What the hell happened here?”.

There are two ways that companies are using to update their web applications right now. The first is to incrementally roll out one feature at a time like Twitter introducing the new ‘ReTweeting’ feature. The other is introducing totally new interface with new features like the new Hotmail and Facebook lite.

Any web applications (or at least the ones affecting big number of users) should have an option for users to either opt-out of new features (in case of incrementally rolled-out features) or to simply choose which version to use.

This requires companies to keep clear and announced track of application version. It also requires them to keep different version of their application deployed which will eventually lead to applying End-of-Life concept to web applications as it’s applied to desktop applications.

As time goes on, more and more of our activities are going into web applications instead of desktop applications. And while users appreciate the removal of application management overhead, they don’t appreciate software companies defining how and when they should use those applications. To put it in a cheap populist chant “Power to the People”.