Perpetual Beta – Development 2.0

This week I examine Tim O’Reilly’s 6th Web 2.0 pattern: Perpetual Beta and it’s corresponding best practices as harnessed by the social networking giant Facebook.

Software being in a state of perpetual beta means simply that it is is constantly evolving, constantly being shaped and crafted right in front of the eyes of its users. Software must be forever changing to remain a competitive commodity in the current era. Users no longer see software being “under construction” as something they have to wait out; an inconvenience. Rather, it is instant exposure to new developments, ideas and features for which they can provide instant feedback and rest assured that the developers are listening.

Perpetual BETA

Development 2.0 allows users to shape software with developers permanently implementing new concepts that rate highly  and those that rate poorly quickly disappearing from view.  Users must be treated as co-developers  the software release cycle is no longer about versions, it has become versionless – does anyone really know what version of Facebook they are using?  New features are integrated seamlessly and service remains uninterrupted. This is possible due to software moving away from an install once, wait, download update, install again cycle to an always on, always connected, Software as a Service.  O’Reilly states that “so fundamental is the shift from software as artifact to software as service that the software will cease to perform unless it is maintained on a daily basis.”  There is no down time, if you are not using your favorite web app someone else is and it is the opinions of these very users that dictates what is developed and when.

facebook

Facebook, like Google, exist among the pioneers of perpetual beta and adopt the best practices in textbook like fashion.

(1) Release early and release often

Facebook are masters in this realm, the introduction of timeline, chat and different layout format are classic examples of releasing early so that user feedback can be obtained and utilised to gauge interest in, and reception of, the new features it plans to introduce. If a feature is popular it is often quickly integrated and tailored around user feedback.

(2) Engage users as co-developers and real-time testers

Another advantage of releasing early and allowing users to trial new features well before a planned integration date is the fact that any bugs, whether they be logical or technical in nature, are likely to be uncovered by early adopters. This also allows Facebook to monitor user behavior and make well informed decisions regarding the way it rolls out the new features and what user demographic receives them first. “Timeline” is a classic feature that was made available to users as an optional update on September 29 2011, and after an overwhelming positive response eventually became a non-negotiable part of Facebook for all users.

(3) Instrument your product

It is absolutely essential to establish a framework for measuring success and implement metrics that provide an accurate snapshot based on this framework. Facebook features are meticulously monitored throughout different stages of implementation. Data gathered from user participation in varying areas is referenced against business objectives to further aid in successful feature implementation.

(4) Incrementally create new products

Facebook is constantly releasing new products and additions and manages strategic decisions through this, moving with technology in response to competition and to flat out user demand . Releasing a stand alone chat application for mobile devices competing with the likes of MSN and simultaneously recognizing the high demand for its chat feature is testament to such strategy.

(5) Make operations a core competency

Facebook realises that the people they employ are paramount to its continued success. They capture this perfectly by stating “We don’t have rules, we have values, focus on impact, move fast, be bold, be open, build social value”. Second to none systems monitoring, built in redundancies, state of the art hardware,  simplified fault tolerance, and razor sharp execution of all is the technology through which it empowers.

(6) Use dynamic tools and languages

Through utilising cutting edge agile development models Facebook is able to offer industry leading technology at all levels  including:

Front end: LAMP (Linux, Apache, MySQL and PHP); Back end: C++, Python, Java, Erlang

In addition to this Facebook offers an impressive array of open source developments.

facebook2

Further Reading:

Version-Less Development: What is it and Why it’s Important

How Does Facebook Work? The Nuts and Bolts [Technology Explained]

Will product innovation win it for Facebook?

Careers at Facebook

Advertisements