Creating Online Application Power Users Using Graduated Usability, Page 2
What technology should be used?
Rich components are the foundation of desktop applications, providing developers and designers with the ability to display complex workflows and handle interactions with users through a robust event model. To a user, rich components give them the ability to interact with desktop components in a greater number of ways (e.g., a table of data can be modified with keyboards shortcuts, context menus or by dragging rows). This interaction doesn't necessarily need to be complex to provide an advanced feature. For example, users can delete a row of data from a table in multiple ways: via the main menu or toolbar, by pressing the "delete" key or by dragging and dropping the element into the "trash" folder. How often have you used the "delete" key in a Web application? Probably never.
While having multiple ways of completing the same task may seem like overkill (or even a waste of time and money), this functionality is core to the third group of user defined by Graduated Usability: power users. They will be able to take advantage of features that new users cannot; making them to be more productive than the novice. Essentially, as users grow more experienced, they grow more productive — something evident in most facets of life, not just when people use great applications.
How RIAs can help
RIA (Rich Internet Application) frameworks available today typically come with a component library similar to desktop applications, whether the runtime is written using AJAX, Flash or Java. These components allow developers and designers to build applications that provide users with multiple ways of doing the same task easily and the ability to eliminate round trip time to the server. Designers using these components will be able to develop applications that meet the needs of the power user, providing them with more complex ways of completing tasks and thereby increasing their productivity. An RIA component library will differ in implementation, based on the type of platform in use. AJAX will utilize the capability of the browser hosting the application, while a Flash-based application will use the Flash animation engine to render the components; Java platforms will use the Java Virtual Machine to create the widgets. Each platform has its benefits and drawbacks, but the goal is the same: to provide the developer with a component library as robust as a desktop component. Once the components are created, developers can use them to create applications with greater functionality and usability, and then deploy them over the Internet. Following are the types of advanced usability features that are possible with an RIA component library:
- The lack of Accelerator & Shortcut Keys is one of the greatest weaknesses of Web applications. The keyboard provides the user with an extremely fast way of triggering an action. Shortcut keys benefit the user by: providing the ability to simultaneously use both hands to perform an action; reducing the need to move the mouse and therefore eliminating "miss clicks" and travel time; and ensuring focus is not transferred away from the actionable item, allowing multiple actions to be taken. Keyboard access is virtually non-existent in Web applications (aside from a form or the address bar) and limits the speed at which tasks can be executed.
- Context Menus provide users with the ability to quickly determine what actions can be applied to items within an application. Context menus are usually activated by pressing the right mouse button, which will open the menu for the currently selected menu. This benefits the user in a few ways: reducing screen clutter and simplify the user interface, as menus are only visible when desired; only showing actions relevant to the selected item; and speeding up how quickly the user can trigger the desired action based on the location of the menu.
- Drag and Drop provides users with a quick and direct way to reorganize information. Users can select items, then click and move them from one location to another. For example, the action being taken in an e-mail application when the user drags a message from the inbox and drops it into a specific folder is very clear.
- Composite Components provide users with ability to interact with the data in place, eliminating the need to activate new user interface components in order to modify the desired data. Rich tree tables are one type of composite component that desktop application designers have incorporated into applications to give users increased productivity. This ability to simply modify a field of data in a table, for example, eliminates the need to open a dialog or switch focus to a new panel in order to perform edits.
Tying it all together
As more and more people use Web-based applications, the need for greater usability becomes obvious, particularly when you consider this in the context of the earlier example, and how much money would be lost in productivity each year just by having all Web users delete a single e-mail with current Web applications. Graduated Usability's effect doesn't need to be as extreme to have an impact on a business. What if a call center could save 5 to10 seconds per call just by using an RIA solution, or an online stock trade order could be executed a few seconds faster? The ability of RIAs to provide "cool" or "pretty" user interfaces made them a fad, but their ability to significantly increase an employee's productivity by allowing developers and designers to build applications that are more usable makes them a perfect platform to build your next Web application.
About the Author
Robert Buffone, Principal Software Architect, Nexaweb Technologies (www.nexaweb.com) is responsible for platforms and tools at Nexaweb. Before Nexaweb, he was with Trakus, a technology company for tracking sports in real-time. Buffone possesses deep experience and knowledge regarding Java and Windows technologies, is a leading expert in User Interface design and has received many awards for his outstanding work in the software industry. Along with speaking at leading industry events, including JavaOne and EclipseCon, he has published several articles on various topics, including tool and application development.
# # #