Perpetual Beta

April 26, 2010

This week’s discussion topic is about the concept of Perpetual Beta. As per usual, let’s start off with what that actually means. From Wikipedia:

Perpetual beta is a term used to describe software or a system which remains at the beta development stage for an extended or even indefinite period of time. It is often used by developers in order to allow them to constantly release new features that might not be fully tested. As a result, perpetual beta software is not recommended for mission critical machines.

So basically, what we’re talking about here is a system which has never really reached full maturity. At this stage, I think its important to note the difference between a final, mature system and a stable system. Many people associate the term BETA Release with not just an unfinished system, but also an unstable one. This might be the case some of the time, but not always. An immature system is not necessarily unstable, just like a mature system isn’t always stable. With this critical difference in mind, it’s easy to see how platforms such as Facebook are well within the scope of perpetual betas. They are fully functional systems that also receive regular upgrades.

Note: There are several conflicting definitions for the concept of software maturity. For the purpose of this blog, I define it as:

“The condition a system reaches when development is nonexistent or at most minimized, and majority of the work revolves around system maintenance”

Now that we know what Perpetual Beta is all about, the next step is to understand why this model is used and what benefits it serves.

Let’s take Facebook as an example. What are the reasons for keeping it in a perpetual state of beta?

First and foremost is flexibility. Being unfinished allows Facebook to add, change and remove features as they deep appropriate (through various means such as Collective Intelligence). Facebook can use data gathered from research and user feedback to find out what its end users want changed, added or removed from the system. Keeping customers happy is the key to any successful business, and make no mistake, Facebook is an online business (Read this for more information).

Being in a perpetual beta state also lets Facebook stay ahead of competitors, constantly throwing out new features or improving existing ones, to ensure they are the leading provider of online socialising.

Personally, I also think its a way to let users know that they can always expect improvements and new things to be rolled out in the future. It keeps them keen and interested, and also assured that their ever changing needs will be met in the future.



Software above the level of a single device

April 18, 2010

So this week I shall be talking about the concept of ‘software above the level of a single device’.

What does this mean? Well, in a nutshell, any software service which you are able to access from more than 1 device, whether it be a mobile phone, a laptop or a PC. To better explain this concept, let’s look at an example of software that runs above the level of a single device: Microsoft Windows Live Mesh.

Here is a short advertisement for Microsoft Windows Live Mesh featured at the Web 2.0 expo:

Windows Live Mesh is a free data sharing and synchronization service offered by Microsoft. It works in the following way. A user is able to add content (files, folders etc.) to “the mesh” (collective term for all devices synchronized with one another). For a typical user this mesh may consist of mobile devices, laptops and home computers. Depending on the application, it may also contain devices of friends or family. When content is uploaded to the mesh, e.g. a photo from a mobile phone, live mesh synchronizes the new content with the other devices in the mesh. To accomplish this, Live Mesh utilities the widely used open- source FeedSync system.

What is the use of such a service? Well, for starters this is the perfect example of what a Web 2.0 application aims to achieve, namely information collaboration and sharing over the Internet. Previously this was not possible as several restrictions such as cost of the service, number of users who would actually find it useful and also technical capability handicaps (such as Internet speed) existed. These days, devices that connect to the net are ubiquitous. Almost every person has a mobile phone and a computer device of some sort. Internet speeds and data allowances are more than capable of allowing this (in first world countries at least… click here to learn more about the technology gap that still exists between First World Countries and Third World Countries).

The most glaring benefit however, of software that runs above the level of a single device so to speak is that the information that is being dealt with is not restricted to a single device. This means the information is readily accessible anywhere you go. The software itself is of little importance here, which is a key concept to understand. We do not access Windows Live Mesh to access “it”… meaning it’s not an end point. It is simply a means to get to what’s really important, the information. In the case of Live Mesh, family photos, videos, music and even work documents need not be carried around with you. They can all be retrieved from “the mesh”. Think of it as your on line access to all your computing devices, whenever, wherever. It has tremendous impact on mobility and also efficiency. For example, working on a document at work due the next morning? No need to finish it then and there. Simply access the document from the mesh at home, finish it and it will automatically get synchronized with your computer at work. Another example would be an overseas vacation. No need to take all your photographs and data overseas, simply access it over the web.

This is basically how other such software such as Facebook and Twitter work.

To sum up, I would say that after the ubiquitousness of devices, the only logical step from here would be to make information ubiquitous as well. After all, it is the really what counts in the end.


Windows Live Mesh


[1] Live Mesh – Wikipedia, the free encyclopedia

[2] LiveMesh and FeedSync: software “above the level of a single device” – by Jon Udell