A recent article by Mr Frank (thanks to Mr Gruber for the link) has highlighted something that has been nagging at the corner of my awareness for some time: our user interfaces are on the brink of (r)evolution. I classify it this way since some people are more reticent when change comes along and some are more welcoming.
However I think this (r)evolution has already started, and will most likely settle down into both web and desktop user interfaces. The three technologies that in various forms are already ubiquitous, at least amongst early adopters, are widely used and will form the basis of this (r)evolution are tagging, searching and auto-complete. All are used in all sorts of recent developments both on- and off-line, but they haven’t yet been integrated and presented in that sweet spot of usability that the touch interface recently has on the iPhone.
Tagging is now used on almost every blog and on many commercial websites in one form or another. Terms such as tag-cloud, tag-list and tagging are already in common use and we are all familiar with the concepts, even if we are not yet adept at using them to their fullest. Google uses tags well in its applications, although they are called labels in Gmail and Google Reader.
Most people have used an email client such as Microsoft’s Outlook that uses the folder concept for email, and yet how many times do people find themselves wondering “Did I file my email in the folder called John because it came from him or did I file it under Project because that is what it was about?”. Tags allow an item to be filed under both and searched for using either or both of the tags. Tags are also fairly universal, they are just words after all, so they provide the lowest common denominator method for searching. Tags also lend themselves wonderfully to structured data and automated tagging.
Searching is almost everywhere we look in the modern computing paradigm. Google made searching the web Just Work. Apple more recently made Spotlight on Mac OS X which allows the user to quickly search local files, and is powered by ‘Automatic’ tagging (indexing). This automatic tagging ranges from the document type (application or document) to specific meta-data like album and artist on music or author on documents. Spotlight is so effective that it almost allows real use of the graphical interface from the keyboard without having a cryptic command line. Google Desktop does something similar. Microsoft has been trying to catch up to both ever since.
Searching really becomes powerful when what you are searching for can be prompted. Auto-complete does exactly this and it is another technology seen both online and on the desktop, from AJAX populated drop down menus on websites to on-the-fly results possibilities presented to you by Spotlight. The more context sensitive these possibilities can be, the more useful the feature and the more well-used it will be. Examples are applications that learn your most likely response in a given situation and try to pre-empt that choice by finding appropriate results.
All of this sounds fairly standard and really not much of a (r)evolution, however I see it as being a stepping stone. When seeing any of these features for the first time, most users are quite impressed or excited, however the reality is that these features are little used, if ever, in everyday circumstances by most users. This is why I still believe that the sweet-spot of implementation has not yet been found. My check list of a perfect implementation to kick start widespread use must:
- make complete sense at first or second glance for any user
- be such a useful function that it is used frequently, and
- be applicable as a design pattern elsewhere
Until that happens we won’t be able to consider serious alternatives to the ubiquitous keyboard. Consider Spotlight (or Google Desktop, or the search box in your favourite browser) trying to work with voice activation: Would you spell what you are searching for? Not likely. Would you just say lots of words? More likely. What would you say? The most likely options here (from a technical viewpoint) would be ‘special’ keywords. A bit like tags then. In fact if you were to use tags your keywords wouldn’t have to be ‘special’ at all, in fact they would be ordinary. It is this kind of thinking that will allow us break away from the keyboard mentality — something we have been stuck with since the typewriter.
However I don’t think it will be a killer idea that carries this (r)evolution but a re-engineering of one of the many other great ideas already in circulation.