You'll invest a lot of time honing your Google Web Services application if you plan to present it to other people. For that matter, it doesn't hurt to hone your application even if you only plan to use it to meet your own needs. No matter who uses your application, you have to consider their needs or the user will quickly tire of the application and not use it. Targeting specific user types helps you design an interface that works well, meets the user's needs, and requires less maintenance time.
Many books and Web sites on application design target generic applications ”the type that anyone could use. However, this book considers a more specific application type ”one that relies on Google Web Services. Even so, the number of uses for applications in this group is quite large, so you need to consider your specific application. It's essential to consider how the user will interact with the application and the user's skill level. In fact, you should consider the following elements when targeting your application to meet a specific user's needs.
The environment in which the application executes ”Web applications often have different requirements than desktop applications.
The device the user will use to access your application ”mobile devices have strict limitations that will affect your user interface design.
The user's skill level ”advanced users require less help and will quickly tire of repetitive help offers.
The input and output requirements for the application ”complex applications (those with more input or output) could require multiple screens.
The request parameters of the application ”simple Google searches that don't use sorting are the easiest to accommodate .
The user's expectations for the application ”most users want to perform research of some kind.
The availability of localized help ”users of Web applications typically receive less help than users of desktop applications.
The use of special features ”a cached page is going to be harder to manipulate than a list of links.
Getting great user interface design references helps you get started faster and ensures you won't make as many mistakes during the design process. Typically, you'll find that books are better than Web sites for this kind of information because books have more space to cover contingencies that articles or other online resources can't discuss. However, don't discount Web sites ”you might find something that meets a specific need. Newsgroups can help, but you need to state the design issues you want to overcome very clearly and take any advice with a grain of salt because the developer helping you might not have a clear picture of the issues.
You can find a number of good books online. The trick is to find a book that's either completely generic or meets the need of a specific environment. For example, if you want to design a Web application, then you might consider reading Designing Web Usability: The Practice of Simplicity by Jakob Nielsen (New Riders, 1999). Although Web developers could rely on this book, desktop developers can benefit most from The Humane Interface: New Directions for Designing Interactive Systems by Jef Raskin (Addison-Wesley, 2000) and About Face 2.0: The Essentials of Interaction Design by Alan Cooper and Robert Reimann (John Wiley & Sons, 2003). A good generic book that addresses interface design as a component of total application design is Designing Highly Useable Software by Jeff Cogswell (Sybex, 2004).
It's possible to find good help online. For example, the Microsoft User Interface site at http://msdn.microsoft.com/nhp/default.asp?contentid=28000443 provides a wealth of information on topics as diverse as accessibility and Microsoft Agent. Dr. Jakob Nielsen presents a number of usability articles at http://www.useit.com/alertbox/. This monthly column provides continuing help with your application as user needs and expectations change. In some cases, you can even find online books such as Task-Centered User Interface Design by Clayton Lewis and John Rieman at http://www.hcibib.org/tcuid/. The authors offer this book as shareware, so make sure you support them if you use it.
Locating a newsgroup that offers advice on user interfaces isn't hard ”it's hard to find good advice. Generally, you'll need to find a newsgroup that caters to your programming language and choice of device (such as the .NET Compact Framework for mobile devices at microsoft.public.dotnet.framework.compactframework ). Some newsgroups, such as comp.human-factors , provide limited generic help should you need it. After many hours of searching, I couldn't find a suitable newsgroup devoted to the topic of user interfaces. Contact me at JMueller@mwt.net if you know of such a newsgroup and I'll post it on my Web site with the updates for this book.
It's relatively easy to use these criteria to build a profile of an individual user, but assessing the needs of multiple user types can become more difficult. In this case, you need to build a profile of each user type and then organize the users by priority. This exercise lets you determine how much weight to give each requirement. An advanced user who only uses the application once a month can easily turn off the extra help you provide to novice users ( assuming that you provide a switch for turning the help off).
Sometimes several user types will conflict, making prioritization essential. For example, if most of your users will employ a cellular telephone to access the site, you might need to provide alternatives for the few desktop users who visit. In many cases, careful development will allow both groups to access the site ”the desktop users might notice that the site is a little plain, but that's about it. The goal is to accommodate the needs of each group based on their level of access to your site ”don't accommodate the needs of a small group to the detriment of the users who normally support your site.