In the early stages of Personal Computing, software was a product, it would be developed, tested, packaged and sold to users. Once software was created it would quickly become a software artifact with no ongoing support as it was difficult to maintain connections with individual customers. With the rise of the internet era these barriers have been removed with companies that can now provide software or services online where additional support can easily be given.
Initially this allowed businesses to provide updates to customers purchased software however through the use of Web 2.0 technologies this quickly grew into providing customers software directly through the internet. These products have transcended the software/service definitions as they are software that are provided as an ongoing service where there is no versions, no installations and no upgrades. Users simply expect these services to be available and to improve over time. Therefore companies must keep software in a Perpetual Beta stage where new features are added on a regular basis as part of the normal user experience.
This blog post will discuss how Tumblr has used the best practices from the concept of “Perpetual Beta” to provide faster releases, reduce risk of glitches, maintain closer relationships with customers, gather real-time data and increase the responsiveness of their product.
1. Release Early and Release Often
Due to the relative ease of updating the system compared to packaged software, it is important that you release your software in the early Beta stages, providing agile and iterative releases to incrementally improve software via user feedback. By releasing early you are able to respond to users feedback into the development of the software, this becomes a free method of testing and user-research. Tumblr provides a beta version of new features each time a significant update is made to allow user-testing and responses.
2. Engage users as co-developers and real-time testers
Incorporating users into real-time testing has presented a cheap alternative to traditional software testing. By providing some users with alternative features and experiences, companies can monitor usage to feed the evolution of their software. This approach is called “Split Testing” and has been a useful tool for Tumblr developers in monitoring the effectiveness and usability of new features. Tumblr announces new version releases and provides an alternate web address www.tumblr-beta.com , to allow users the choice of participate in beta testing. From using monitoring software and listening to the responses of users, Tumblr gains free insight into users needs.
3. Incrementally create new products
Updating new software no longer requires large amounts of releases bundled into a single update. Web 2.0 software provides an ongoing service where features are added incrementally with little disruption to the user experience. By incrementally updating features and allowing users to be real-time testers, companies are able to gain constant feedback on the current service and where the service should improve. By monitoring the usage of your service and incrementally improving the main features, new products can be created incrementally. Tumblr is under constant incremental updates, where the ways customers use the system are monitored and used to adapt the product to be more user-orientated.
4. Use dynamic tools and languages
As a part of creating software in Perpetual Beta it is advantageous to employ platform independent languages such as Python, PHP or Ruby. By creating an environment where change is easily achieved it allows easier transition to improving technologies and allows the business to stay on the forefront of technology. Tumblr takes advantage of these technologies using PHP, Ruby, Scala and many other software languages to develop different areas of their software.
There are however a few guidelines to avoid issues with using the concept of “Perpetual Beta” to further your software development and they will be discussed below.
Beware of Excess
As with everything in web development you must be wary of overusing certain ideals as they can be counter-productive. A part of undergoing Perpetual Beta is to not bundle updates, however companies must be careful to not go too overboard with this idea. Providing too many drastic updates over a short period of time could create confusion and fatigue with customers who constantly need to relearn the features of your software.
Any monitoring software used to discover what customers are doing when they visit your webpage must be done with appropriate privacy and security guidelines. These must be available and accepted by the user and not gather any identifiable or unnecessary data about the user.
User Testing replaces Quality Assurance
The concept of Perpetual Beta allows companies to monitor users activities to enhance features and live-test the software. However it is important to not solely rely on customers for testing as this could become an excuse for poor quality of product. Updates should be tested in-house to ensure they are working before release and should be either an optional feature for users or one that does not limit their ability to use the software. Tumblr provides a separate web page for users who want to opt into beta testing, while providing the standard page for users who want the normal experience.