|
|
|
| Print version | |
Related Links |
|
| Efficient MiniApp Design – The Right Information Right on the Spot | |
Background Links |
|
| Remember the Milk | |
| 30 Boxes | |
| ImageMagick | |
By , Multilingual Technology, SAP AG – October 27, 2006
The headline of this article might sound familiar to those of you who can remember some of SAP's previous marketing strategies. Yes, that's right, it was in the late 1990s when the Enjoy SAP initiative brought a fresh approach to the usability of SAP software, and the original slogan was "The software works the way I do."
Lately, I have been trying out several Web applications that fall under the (caution: buzzword right ahead) Web 2.0 category, and I would like to point to a concept they share that could be given more room in traditional desktop applications. Let's have a look at a few examples before we discuss the implications of using this concept in consumer or business applications.
The first application I would like to look at is an online task manager. But first, a few words about the task management system that many of us use: the Tasks module in Microsoft Outlook or similar desktop applications for personal information management.
Imagine your manager stops by and assigns you to a new task, telling you that it has to be completed in about eight week's time. You create a new entry for it in your Outlook task list, and when it comes to entering the due date, you have to go through the following process:
Alternatively, you could simply calculate the date and type it in.

Figure 1: Entering the due date in Microsoft Outlook
You might think that both ways of entering the information that the task has to be completed in eight week's time are easy enough, and I agree that there are bigger usability challenges than this one. Enter Remember the Milk, a Web application with the one and only purpose of managing to-do lists, showing that sometimes even small challenges offer a lot of room for improvement. Its process for entering the due date for the example above works as follows:
![]()
Figure 2: Due field in Remember the Milk
The application takes a second to calculate the due date and displays it in the Due field, using the following format: Tue 23 Nov 06. The next time you click the calendar icon, the content of the field is selected and you can simply overwrite it.
Another way of entering a new task in this application is to send it by e-mail (to a cryptic and therefore spam-safe e-mail address that is generated for this purpose when you sign up for the service). If you send a task by e-mail, the subject line of the e-mail message is used for the task title, and if the first line of the e-mail says "Due: in 8 weeks," the due date is calculated as described above.
As a fan of light-weight Web applications, I happily regarded this as another case of "Web app beats clunky old desktop app." I stand corrected. Alternative ways to accomplish a task are sometimes hidden behind the surface of the GUI, as the following episode shows: Some time after I had written a rough version of this article, something completely unexpected happened. I was changing the deadline of one of my tasks in Outlook and entered the information in natural language ("in 2 weeks") just for the fun of it – I was expecting an error message. What I got instead was instant success: Outlook happily accepted the entry, calculating the right date just like that. I started to play around with the Due date field only to find that Outlook is really clever in how it interprets natural language entries. I have collected the following examples:
| Entry |
Calculated Due Date |
|---|---|
"next week" (entered on a Wednesday) |
The Wednesday of the following week |
"tomorrow" |
(Guess what) |
"in 2 weeks" (entered on a Friday) |
The Friday of the week after the next |
"monday in 2 weeks" |
The Monday of the week after the next |
"2 sep" |
September 2 (current year) |
I have been using Outlook for seven years now, and I never even thought of entering a date in natural language until I came across this feature in Remember the Milk. You cannot miss it there, because you have to use it when you submit tasks by e-mail. In Outlook, the feature does not even seem to be documented, and the user interface suggests two ways of entering the due date: Enter an exact date or use the calendar in the drop-down box. I have now been using this natural language way of reprioritizing the entries in my task list for a few weeks, and I guess I'll stick to it, because it is a more flexible and at the same time very fast way of entering the data.
Let's have a look at another, similar example. Many of us use Outlook to manage our appointments, and recurring appointments are a special type. Imagine you wanted to create a new appointment for your group meeting that occurs weekly on Tuesdays from 2 to 4 pm and has no end date. You could either look up the start date you have in mind in the calendar view and double-click the day, or choose File | New | Appointment from the menu. The next steps would be:
Figure 3: Entering recurrent appointments in Microsoft Outlook
How can we simplify this procedure using natural language? An alternative approach has been developed for the online calendar 30 Boxes (guess where the name comes from, I admit it took me quite some time to figure it out). This application has an entry field above the calendar view that is always visible – it is called the One Box:

Figure 4: The One Box field in 30 Boxes
Entering the recurring appointment from the example above using this entry field works as follows:
This creates a new recurring appointment, starting on the following Tuesday, with "Group Meeting" as the subject line. The One Box is not very strict about the way you enter the information, and you can put much more information into the line (even notes in the body of the appointment).
Although the concept of the One Box is similar to what I described above, there's an important difference. Entries like "next week" or "tomorrow" are natural language entries that do not require mental effort – you simply enter what you would answer if someone asked you the due date of a task. The data entry that is required to set up the recurring event in my example is a translation of "We should a have weekly group meeting on Tuesdays from 2 to 4 pm." The language that you use to set up an event is less natural, but at the same time more powerful because you can put a lot of information in just a few words. It is nevertheless easy enough to learn and use. The application displays examples for natural language entries beneath the One Box that change frequently, allowing you to pick up the concept as you go along.
The applications I have discussed in this article use natural language very effectively to offer an alternative method of entering data. They are successful in doing so because they manage to mirror how humans think about the data they enter. This leads us to an interesting question (apart from "How on earth can I enter a recurring event in Outlook using natural language?"). All my examples are about entering information that is related to times and dates. Although it seems like magic the way the applications transform your natural-language entries into exact calendar data, it is not hard to imagine how the programming logic behind this magic works (even for non-developers like me). You have to parse the string that the user enters, look for keywords ("days," "months," the names of weekdays and months, numbers, etc.) and apply a set of rules to put them together in a way that makes sense. This sounds complex, but it must be relatively easy to interpret the string if you know that the entry refers to times and dates. A number that the user enters, for example, can mean only so many things in this particular context (a time of day, a certain day in a month, a month, a year or a number of recurrences), depending on its position in the string. So why not use this advantage in other areas besides personal information management? Every application belongs to a certain domain and has a certain context in which it is used, so there must be many others that could benefit from using natural language.
Here are a few examples (most of them probably not yet implemented) for consumer and business applications from different areas:
| Area |
What the user would do before entering the text |
User entry |
Instead of |
|---|---|---|---|
Word processing |
Put the cursor in a command field that is always visible |
"Add page numbers in footer" |
Several clicks in the menu or toolbar |
Spreadsheet |
Put the cursor in a cell beneath a column of numeric values |
"Add up values above" |
Entering a formula |
Image processing |
Put the cursor in a command field that is always visible |
"Resize to 50%" |
Several clicks in the menu or toolbar |
Leave request |
Put the cursor in a command field that is always visible |
"Sick leave yesterday" |
Several clicks to select the leave type and the date |
People management |
Put the cursor in a command field that is always visible |
"Show absences next week" |
Several clicks to select the desired options and start the report |
Interestingly enough, some command line tools, especially in the UNIX and Linux world, do offer a way of entering complex commands via the keyboard (a good example is ImageMagick). However, they often require exact entries that do not qualify as natural language, thus missing the balance between being powerful and easy to use.
Alan Cooper has developed another way of entering commands using natural language. It uses a special combination of controls called a shuffler and can be used in user interfaces like this one:

Figure 5: SAP MiniApp – now called iView – with shuffler
I am not going to discuss the advantages and disadvantages of this concept in detail (see Gerd Waloszek, Efficient MiniApp Design – The Right Information Right on the Spot), but the main differences to the examples described above spring to mind: A shuffler is a point-and-click-based control – it does not use keyboard entries. Therefore the possible user entries are predefined and limited, which makes life easier for the developer and less flexible for the user. Apart from that, the sentence "Show me [the] revenue growth of [the] year 1999" may have a different syntax in other languages, which means that the labels and drop-down boxes would have to be rearranged on the user interface. This goes beyond the capabilities of the common localization tools and processes.
However, applications using natural language have to deal with localization issues as well. When an application that accepts natural language entries is translated into another language, the possible user entries must be translated as well. An application with a German user interface that only accepts natural language entries in English would not be very convincing. The application developers have to consider this in their internationalization concept from the start. Remember the Milk, for example, shows that it is possible to meet this challenge. The application is now available in several languages, both in the user interface and the languages it understands.
Adding natural language entry to your applications requires a rather unusual design process. It's not about analyzing interaction sequences or choosing patterns and controls. It's about choosing common words and phrases the user is likely to enter. This probably involves developing new methods for prototyping and usability testing before we can really benefit from this concept in our business applications.