This time, it’s personal
One of the sure hallmarks of successful web-based applications is providing the user with ability to customize the application experience to suit his or her specific interests and needs. Such customization not only tailors the system to the unique use-case of the user, but, done properly, it actually extends the capabilities of the application. There are three primary categories of customization, each of which provides specific benefit for the user.
1. Personalization – settings or simple adjustments that tailor the application’s presentation to someone’s personal preference. The more visual and elaborate, the better.
2. Local Integration – the ability to include data or information from a desktop computer or local system (server) within the web application. Can range from simple (upload my photo) to sophisticated (dynamically embed my MS Excel chart within an iFrame and refresh every 60 seconds).
3. Mash-Ups – combining web-based data and information within a single HTML container, purely through presentation-level techniques (URL addressability, drag-and-drop, etc.) and with the goal of creating a new web service as a result. Ideally, a web application supports mash-ups in both directions: embedding live data objects from other sources and placing live data objects within other HTML containers.
Of course, the consumer web provides many examples of customization - myYahoo and iGoogle are among the most straightforward and popular. And the social networking sites (MySpace and FaceBook especially) are founded on this trait of customization. In web-based enterprise software, we have fewer powerful examples, but they exist. Certainly Salesforce.com provides a respectable amount of customization, by granting user-defined ability to assemble pages for displaying reports, dashboards and even some control over interactive/input fields.
To illustrate two of the three categories of Customization listed above, I’ll again resort to my favorite web-based application, JasperServer v3.5. Below is a screen shot of a JasperServer dashboard that exhibits both local integration of data (JasperServer-managed and R-managed, where R is the popular statistical analysis tool) and mash-ups (integration of Google map, news feeds, Twitter feeds, etc.).
In this case, the JasperServer dashboard is displaying a broad set of data and information, some of which is managed by JasperServer but much of which is external and is simply being displayed here conveniently for the end-user. Technically, each data element is contained within its own iFrame and is managed separately. And, each data element generated by JasperServer can be embedded in another HTML container for use in another web application (with an intelligent, dynamic link maintained back to JasperServer). Additionally, each data element (regardless of whether it is internally- or externally-sourced) can have its attributes mapped to a global input control. So selecting "New York" in the input control could simultaneously filter a bar chart and re-orient the embedded Google map (or news feed) to that region.
Of the four major web application design points about which I’ve been writing, Customization is probably the most profound in its ability to transform an organization’s use of web applications. For this reason alone, every web application should embrace this fully. My next post will focus on Collaboration, the fourth and final web application design point.