Friday, January 7, 2011

Usability of web applications

The web is rapidly becoming (or is now) the most important platform for new applications. The network bandwidth and the improvements of the browsers solve critical bottlenecks that prevented it from happening.
This results in application developers using lessons learned from desktop applications to improve and solve issues related to web applications.
One of the most crucial aspects of any application is its usability, and in the context of modern web applications, a key issue is understanding what are the main differences between desktop applications and web applications.
Usability, like many other development / engineering fields, revolves around handling constraints, in this case the major constraint is the user. We need to understand what differs the desktop application's user from the web application's user, taking into account that it may be the same user, which implies that the key difference is not be found in the skills / age / tech savvyness of the user, but elsewhere.
A good place to look for the difference is in the user's state of mind. Desktop applications users are basically bound to the application. They either bought it, downloaded it, got it as a present or are  forced to use it. The users of desktop applications are somewhat of a captured audience, they cannot go anywhere and need to put effort into solving problems that prevent them from using the application properly. In web application this is not the case. In this world, another application, that can do the same job, is a few clicks away. Users would't and shouldn't put any effort in "aiding the application" to help them use it. They will not read manuals, help contents and product literature, they would just go to the competitor.
The fact that the competitor is a few clicks away, and the fact that the users know it and does not have any problem in doing these clicks, needs to affect any web application.

Simplicity, smooth learning curve, excellent user experience, great visual design and being an eye candy is not a bonus, it is now the starting point for any web application, failure to do so would result in clients going away.

In my mind this is the key difference between desktop applications and web applications.