Rich User Experiences

March 28, 2010

As the Web 2.0 trend pulls us away from the traditional desktop oriented software model to a web based one, one of the biggest problem we encounter is replicating the same user experience online as we once had on the desktop.

Currently, a lot of online applications (e.g. Google Docs) are more or less light-weight versions of existing desktop applications we are used to working with (e.g. Microsoft Office) because they don’t provide the same level of functionalities as the desktop software. However, if the online server-client model is to persist and become ubiquitous, then it MUST match the user experience currently being offered by desktop applications. Having a rich user experience is a necessity for user acceptance over other solutions.

The phrase “rich user experience” encapsulates a multitude of different things including (but not limited to) functionality (what features the application provides), usability (how easy is it to use?) and presentation (is the GUI attractive?).

For example, let’s take the current market leader platform for providing such rich experiences that I have talked about: Adobe Flash. Wikipedia describes Adobe Flash concisely so I shall quote it instead of re-inventing the wheel:

Adobe Flash (formerly Macromedia Flash) is a multimedia platform that is popular for adding animation and interactivity to web pages. Originally acquired by Macromedia, Flash was introduced in 1996, and is currently developed and distributed by Adobe Systems.”

Today, Flash has become widespread and has reached a market penetration of 95 – 97%¹

Why did Flash become so popular? Because Flash provided web developers with a way to provide richer experiences than what standard HTML pages could. This included incorporating multimedia elements such as animations and video directly into the web pages. I don’t have exact statistics, but it is beyond a doubt that companies which used Flash to add richness to their websites would have seen their popularity rise.

Over the years we saw Flash take a strong market hold as many websites had some sort of flash on their pages, be it videos, advertisements & banners or any other components.

During subsequent versions, Flash included its own scripting language called ActionScript which allowed developers to build their own web applications using Flash. Users could interact using their computer’s input devices such as the keyboard, mouse, microphone & webcam. ActionScript itself evolved from a scripting language into an Object Oriented programming language, allowing users to build even more complex and richer applications using Flash.

In the end I think we can see that Adobe Flash is a perfect example of how rich internet applications can transform websites and provide richer user experiences which can only lead to greater user acceptance.

PS. Some other technologies that are interesting to look at are AJAX and Adobe Flex.

¹ http://www.statowl.com/custom_ria_market_penetration.php

Advertisements

Innovation in Assembly – Journey from Applications to Platforms

March 21, 2010

Not many years ago, as recent as the late 1990’s, the most commonly used architecture that was prevalent on the web was application based. Many developers including e-businesses focused themselves on developing standalone web applications to suit their business needs and purposes. This was at a time when applications weren’t as complex in functionality and features as they are today.  Then, as technology and business requirements both grew more and more complex, we started to see an increase in the number of applications being used by any particular business or web developer. The problem that surfaced was interconnectivity between these applications was often anything but easy. There was no standard way for any number of applications to communicate with each other. This is essentially when the web platforms came in. Platforms made it easier for a company to build an extensible set of applications all based on the one platform. This allowed for easier management, scalability and more recently, being able to take advantage of 3rd party developers through offering public Application Programming Interfaces (API’s).

One of the most recent examples of such a platform is Google’s Android Operating System for smart phones. Android was unveiled Q4 2007. This platform is similar to Apple’s iPhone platform for mobile phones, with the key difference being that Android is Open source and iPhone is not.

One of the ways in which Google has used Android as a platform is by integrating other Google applications into it. These include Google Maps, Google Mail, Google Voice and Google Translate. As previously mentioned, interconnecting applications is one of the key benefits a common platform provides.

Apart from Google services, Android is also open to a variety of 3rd party Applications developed using Android Software Development Kit (SDK) which includes debuggers, emulators, sample code and documentation, and also an extensive set of API’s.  

As of March 2010, there are over 30,000 applications in existence for the Android Operating System. These can be accessed and downloaded via the Android Market, a similar concept to the iPhone App Store.

All in all I think that focus on Platform as opposed to Applications will be the future of software and services development not just for the web or for mobile devices. The paradigm shift has already taken place widely with the onset of “web 2.0”.


Data – The next “Intel Inside”?

March 14, 2010

With the explosion of Web 2.0, web applications are increasingly becoming data driven. Examples for this include Facebook, MySpace, Twitter, Youtube and the list goes on. During earlier times, the focus had always been on the application itself – providing features. The introduction of Web 2.0 has really brought about a paradigm shift on the Internet.

Creating a unique source of data that is hard to replicate has become a very important strategy for application developers. It has finally been realised that the data submitted by users is much more important than the application itself. This ties into my earlier post about Collective Intelligence – how everyones collected knowledge is worth so much.

Other aspects of CI – such as having feedback mechanisms like reviews, comments & ratings are all ways in which web application developers can increase their “data wealth” on their website.

In the end, it all boils down to the same type of questions which all basically say ‘what about the data is so important’? Well, it depends on what type of data is being gathered. Sometimes, the data benefits the application and thus in turn, the company. One particular example of this is Google Earth. Users are able to upload their own data such as information about landmarks and even photographs into Google Earth’s database, and this is integrated into the Google Earth user interface for easy access.

Other examples such as Facebook And Twitter are harder to speculate on. The nature of data they are collecting is quite personal. There are undoubtedly 3rd parties out there “in the wild” who would benefit in some way or form from having access to this data, such as companies wanting to promote their products and services through targeted advertisements. Even though the data may not identify any particular person by name, it is still accurate enough to include them and others in a group of ‘targets’ for advertising. Of course, Facebook wouldn’t just hand this information out for free.. they too would profit from  YOUR data.. YOUR inputs into the website.

So next time you are posting something on your favourite social networking site, remember it is worth a lot more than face value.

Also, I wonder what people’s thoughts are regarding what end users actually get in return for providing more feedback and hence more value to the web applications in question. Or are we simply putting them on a pedestal. Should we be providing such “services” for free? Or should WE be getting remunerated for our input into making those applications the success that they otherwise might not have been?

– Shravan.


Collective Intelligence – Will there ever be a truly ‘finished’ system in the future?

March 7, 2010

Collective Intelligence. What’s the first thing that comes to your mind? Feedback? Ratings? Comments? The answer is ‘yes, and much much more’. Collective Intelligence is a powerful idea that when used correctly and efficiently, can be the greatest source of information and power that one can possibly achieve. In laymen terms, CI refers to all the knowledge and experiences of all users of a system or product. Web 2.0 has enabled Collective Intelligence to grow since web 2.0 has actively promoted collaboration and interactivity between users, which is exactly what CI needs to function.

There are several examples of CI which we may have overlooked. Companies have only recently caught on to the untapped potential of CI. We now see it being used almost ubiquitously.

Take Windows OS for example. From XP and onwards, it has included an Error Reporting mechanism which is an implementation of CI. CI is also ever present in other areas such as gaming industry, with many games now supporting a feedback mechanism such as games based on the popular ‘Steam’ platform.

Many more examples of Collective Intelligence exist but are not easy to detect. This is because they are hidden or not entirely obvious. Google has risen because of collective intelligence. Google’s search engine uses data from people who search the net to rank pages, known as PageRank.

In the future I believe CI will be used standard part of the lifecycle of a system, part of the Maintenance Phase.

– Shravan.