Saturday, January 26, 2008

Web 2.0 Design Patterns

In software design, Design Patterns (it is a proper noun) are the solutions to solve a problem that occurs repeatedly. They can be in the form of a description or a template. As they are the solutions for design, there is no sense in having an algorithm to describe it. Algorithms are used to solve computational problems. As the design patterns don’t have a distinguished algorithm, they cannot be converted to code. O’Reilly (2005) has identified very interesting design patterns for Web 2.0. One can really understand the Web 2.0 concept very easily with these Design Patterns.

He enlisted the design patterns as follows:

1.The Long Tail

Chris Anderson (2004) was the person behind coining the phrase “The long tail”. The long tail, a trend in Internet business, evolved in 1998, identifies the metrics of the product sales of a business. At that time no one particularly identified the importance of it, until Amazon.com came up with a new business model of their application. Ironically, the long tail is a crisis rather than a solution. What O’Reilly meant was that Web 2.0 applications must overcome this niche.
To understand this concept clearly, let us analyze the graph below. Chris Anderson (2004) analyzed product sales in the market both at retail stores and online stores. He sketched a graph (fig.1) with products on X axis and popularity of that product on Y-axis. The results were very clear that products which were new and popular had huge sales. While the products which were old and less popular, had very less sales.



fig 1: graph explaining the Long Tail ( Chris Anderson , 2004)


Chris Anderson (2004) has analyzed the anatomy of “The long tail” graph by comparing sales of products at retail stores to online stores. The results were astonishing. The sales of new products at retail stores were on an average of 65%. While online sales were only 34% on an average. Why is this so low? This is because online customers could buy old products and also less popular products. Where as, retail stores could not provide these products as they are cost effective to their business and wastage of physical space. Also, it is a hassle for the retail customers to search their product physically. Where as, they can find the product they want to buy online instantly with online search (Chris Anderson, 2004).
Chris Anderson (2004) identified from the “Anatomy of The long tail” (fig:2 ) graph that products lying in the long tail region were hugely available online and sales were also satisfactory. Let us have a look at the graph. The yellow part represents the long tail region.



fig 2: Anatomy of The long tail(Chris Anderson, 2004)

From the graph, it clear that the range of products available online is very huge compared to retail stores. Also, sales of yellow region are high for online stores as these products are not available in retail stores.
Hence, from the above analysis it is proved that the Web 2.0 applications should overcome the Long Tail crisis to be successful. Otherwise, there is no purpose of it being a Web 2.0 application.
"Overture and Google's success came from an understanding of what Chris Anderson refers to as "the Long Tail," the collective power of the small sites that make up the bulk of the web's content." (Tim O'Reilly, 2005, p. 3)

2. The Perpetual Beta

Tim O’Reilly (2005) describes this Design Pattern as a trend that was set in the software design of Web applications, with the advent of Web 2.0. Generally, a software product is always packaged which follows a traditional “design-develop-test-ship-install cycle” (O’Reilly, 2005, p. 2). Every time when an upgrade is made to software, the version number changes. Most of the Web 1.0 applications were based on this software design.
But, Web 2.0 application has put an end to the software release life cycle. There will be no version numbers, software updates or packaged software. Software here came out as a service which keeps improving constantly. The developers can add an upgrade to the software without any notification to users. Additionally, they can even make use of users as co-developers and testers in a real time environment. In this way developers trust the users.
Developers design a framework to capture how users are using the application. So, software releases come for the Web 2.0 application hourly, daily, weekly or even monthly but not yearly. For instance, compare the software releases of packaged software like Microsoft windows and Beta Web application like Flickr (John Musser and Tim O’Reilly, 2007). This can be understood from the following figure:





Fig 3: software releases of Microsoft Windows and Flickr during 2004 and 2006 (John Musser et al., 2007)

It is clearly understood from the figure that Flickr had made so many upgrades to its application during 2004 – 2006; Where as, there was not a single release from Microsoft Windows during that period. This explains the whole concept of the Perpetual Beta. In this, the software keeps on improving at a very quick pace. When ever developers feel to add a new feature they just add an API or add an object to the user interface (UI) of the Webpage. Some of the famous Beta Web applications are www.gmail.com, www.flickr.com, www.zoho.com and their logos are shown below respectively.




fig : Examples of Web 2.0 application logos (no author, web2logo, Retrieved November 8 , 2007)
An interesting fact observed from this is that there is a term beta included in all of these logos. Most of the Web 2.0 applications have beta, alpha or test terms embedded in their logos. So, whenever a new feature is added, the user will come to know of that upgrade (O’Reilly, 2005).
3. Data is the next Intel Inside
Tim O’Reilly (2005) figured out that the data played a crucial role in the Web 2.0 applications. He observed the design of Web 2.0 application was in such a way that the data manages to drive the application. Users upload the data to Web application and in return the other users use the same data several times. Companies like Google, YouTube etc. have designed their applications in such a way that they can collect and manage user data, resulting in the formation of huge databases. To them, database management plays an important role in their applications. In this way the Google’s database is hundreds of peta (1015) bytes of public information and it gets added by thousands of terabytes daily (Paul Anderson, 2007).
Likewise, every company creates its own database like the MapQuest’s database of maps, the Amazon’s database of products and sellers and the list goes on. Much of this data is collected indirectly from users and aggregated in to a database. The developers create the application services in such a way that they learn from the actions they perform. For example, assume a user buys a book from the huge database of book collection from Amazon.com. The application is able to function in such a way that when ever the user returns, it will provide recommendations on the user’s page according to the user’s taste. This is a very good marketing strategy followed by Amazon (Tim O’Reilly, 2005).
What will companies do with all these databases? This information is provided to other companies for their entrepreneurial activity thus increasing their business intelligence strategies. The data they collect is used as a commodity to improve their business according to customer satisfaction (Paul Anderson, 2007).
Also, this information is provided to other developers to build applications that can integrate different databases. This process of combining is also called mash-ups. For instance, housingmaps.com has built their application integrating the Google Maps’ maps database and the Craigslist’s flats availability database. This made life easier to users using the website as they could actually locate the location of the flat on a map and the directions to that place from their current location (Tim O’Reilly, 2005).
Hence, Tim O’Reilly (2005) was correct saying that the Web 2.0 applications must be data driven. There is still a debate going whether to make this data public. Some say that it should be made public for general purposes. While others argue that it affects the privacy of an individual if the data is made public.

4. Architecture of Participation

O’Reilly(2005) has discovered that there was participation and collaboration between both software developers and users of the system, in developing Web 2.0 application. A Web 2.0 application is designed in such a way that the service gets better, the more users use it. They are built using techniques that make the users and developers take part in collective activity to reach a common goal. O’Reilly (2005) called this as “harnessing collective intelligence” (p. 3).
For example, open source software project is a licensed product available open to all users. They can modify and use the software for their own purposes. They can also try to improve it. Any new code is immediately integrated in to the source code so as to reduce bugs. The product is always user generated content. Some of the popular open source projects are Linux, openoffice.org. These open source projects have revolutionized the way people live by making software available to everyone, free of cost. This is what collecting the people’s wisdom mean. Another good example is the online encyclopedia, Wikipedia where the whole content is a collection of user’s wisdom.

To understand the Architecture of Participation concept better, let us have a look at the picture (fig: 4) below. O’Reilly (2005) observed that the Web 2.0 application had exponential network effects with the growth of the audience. The users were the main creators and distributors of the content. Web 2.0 Application uses techniques like allowing users to send e-mails and invitations of its content to other users, increasing the audience; resulting in a network effect.






fig: 4 >.Picture describing the Architecture of Participation (Dion Hinchcliffe, 2006)
What is a network effect? A network effect (in terms of website) can be defined a characteristic where addition of a new user has deep impact on the whole application to the benefit of it. i.e., users add value to the application. For instance, the online auction Website ebay is not useful, if there is no competition for bidding a product which is indeed sold by a user. Because of the competition in bidding a product, the users can get the amount they expected for the product. They later recommend this website to another user. Thus, increase in the audience increases the value of the website. (no author, Wikipedia, Network Effect in software, Retrieved November 8, 2007)
From this, Tim O’Reilly (2005) observed that “Users add value to the application both implicitly and explicitly” (p. 5).
Another good example is Bittorrent. Using this software, users can share digital data with other users via the Internet. Users can set bandwidth for each upload of data. The whole concept behind this is Peer to Peer (P2P) sharing. The more the users upload at good bandwidths, the faster the download. This results in better performance of the software. That’s the reason why Tim O’Reilly (2005) said that “the service automatically gets better the more people use it”.

5. Software Above the Level of a Single Device
The Web 2.0 application should not limit to a single platform like Personal Computer (PC). It should be able to work on a cross platform environment like handheld devices, PCs, and internet servers. According to Tim O’Reilly (2005), “Applications that are limited to a single device are less valuable than those that are connected” ( p. 5). Hence, the design of a application should be in such a way that it uses common frameworks that can work in a cross platform environment by integrating services. Depending upon the richness of the application, applications utilize intermediate modules that can be shifted between client and server transparently (Kurt Cagle, 2006).
Good examples of this kind of software are Apple’s iTunes and Google Maps. Customers can download iTunes by buying them online. They can also convert mp3s to iTunes using desktop software and can play these songs on both PC and Apple Ipod. This shows that iTunes are multiplatform ( no author, Wikipedia , iTunes, Retreived November 10, 2007).
Now let us discuss about Google Maps. The application is compatible for both mobile platform as well as desktop browser. This shows that there are many Web 2.0 applications coming in the future that can work on diverse platforms.

No comments: