Friday, September 5, 2008

Ubiquity - Extending web applications

I've recently begun using the new FireFox extension ubiquity ( ) on both the Mac and PC and find it a real pleasure and useful plug-in. It's already proved invaluable on numerous occasions during my everyday web browsing and development. However, today I started thinking about ways in which ubiquity could be used to not only extend the web, but more precisely, used as a way for SAAS providers to extend their offerings without actually modifying their code bases.

I've always been a firm believer in tailoring web applications based on web personas, experience, frequent use-case or at the very least provide Power User features for those who know how to navigate the web. For example, I consult at a company that has an application that is used by Doctors, Nurses and Customer Service people. The Customer Service people seem to navigate the web incredibly well and have devised all kinds of tricks in order to facilitate their work in the web application. On the other side of the spectrum, Doctors aren't very familiar with the web and it's awfully painful to even watch them use our application. Nurses are somewhere in the middle. Unfortunately, our application has been built with the lowest common denominator in mind. While this isn't a bad thing in principal, it does hinder the productivity of those more experienced users. Which brings me back to ubiquity. I've already found several places where we can utilize ubiquity to improve productivity and usability. One place is filling out forms. Using natural language, you can quickly automate the population of a webform. This is especially useful in cases where the user has to take their hands off the keyboard in order to select an item from the dropdown. Another scenario is templated notes. Our users have tend to have secondary windows open to programs like notepad where they keep their frequently used snippets of notes handy. They then copy this text out of notepad, paste it into the notes section of our application and replace the marker values. Using ubiquity, it would be easy to build a command that stored the companies frequent note templates and share them across the user base. They could then tab through the markers to replace the values, or perhaps the command would be smart enough to pull the values off the form directly (in certain sceranios).

The nice thing about this approach is that users who don't want to use the extensions, don't have to. They can continue using the application as they always have.

I may try and build some prototypes of these ideas and post them on my blog. My feeling is that SAAS providers and large applications will be moving in the direction to provide ubiquity commands for their users, and leave some of the advanced features out of the UI itself. The advantage of this is that it leaves the UI less cluttered and more focused on that data, instead of buttons, options and features that scare users away.