Conditional Interfaces

When you select a block of text in Microsoft Word, your toolbars automatically change to display a set of options that is unique to the selected text. Look for similar features to be implemented on broadband Web sites. As menu systems and site functionality expand, you'll be able to use conditional interfaces.

With faster connection speeds, amplified user expectations, on-call user preference files, and application-like functionality, you'll need to design smarter interfaces that know who users are and what they're trying to do. Currently, such functionality is severely limited by questionable cookie systems and user registration files that are queried over precarious connections.

Users will be more concerned with functionality than with download times as bandwidths increase, and it will be imperative that interfaces become conditional and micro-functional. Drop menus, for example, won't even be hard-coded into the page. Menu options will be loaded on the fly, depending upon where the user's pointer sits on a page or which page he or she came from. You may be able to offer this feature now, but slow connection speeds render it relatively useless.

Tactile Response

Letting users know that their commands have been entered and their tasks are complete is one of the most important aspects of an optimal user experience. A simple click sound or dialog box telling users that they have successfully completed what they came to do goes miles toward improving user confidence and trust.

Users need to know that a command has been entered and that the requested process has either begun or is complete. We have ways of doing that now, but there is little consistency in the messages we display to users. Some slower sites tell users that a page is loading and ask them to wait. Others tell users that an order has been received and that an email confirmation will follow shortly. These measures are meant to assuage concerns over slow load times and the wait between command entry and response. While the page sits idle and the browser icon rotates, your users' confidence in the efficacy of a command diminishes.

As the wait time decreases with faster connections, user confidence in online applications will increase. When customers enter orders for an item from an e-commerce site today, they must trudge through several screens, each with a database query and load time of its own. There's even more downtime while customers wait for receipts and email confirmation, often many minutes of lagtime after completing the transaction. Imagine a future in which receipts are generated immediately upon purchase; shopper confidence will soar.

Even better, imagine that a user purchases a piece of software and can use it immediately. No waiting for a package to arrive in the mail and no shipping charges. While some companies offer software downloads along with software purchases, these services are limited by user connection speeds and file size. As those concerns become less important, more users will forget about the pretty packaging.

Get Frustrated All Over Again

There is a dark side to all of this. More possibilities for users means more opportunities for them to become frustrated. More choices lead to more steps between a task and the ultimate goal. These new, complex, online applications will also lead to a higher potential for bugs, a heavier dependence on QA measures and customer service, and steeper user learning curves.

Today, user-experience experts and quality-assurance engineers have the relatively straightforward duty of testing whether users can complete a finite number of tasks. As Web sites incorporate more complex tasks, the number of potential page flow routes and user goals approach infinity. Therefore, designing and testing an optimal user experience becomes increasingly difficult.

Consider an e-commerce site. If you were to design a way to test the efficiency of that site's interface, you would come up with a finite number of projected user tasks. For example, you might look at the ability to search for a product, browse a category, add an item to a shopping cart, and purchase the item.

Now imagine that same e-commerce site as both the source and the fulfillment mechanism. That is, if customers were to buy the latest Britney Spears album at a future e-commerce destination, they wouldn't just check out and wait for the CD to arrive in the mail. Instead, they'd download the entire album as a file to play at their leisure. Suddenly, as a developer, you're charged with coming up with and testing a compelling fulfillment process that was once the responsibility of a warehouse in New Jersey.

Next consider a personal finance site. Users can check their balances, pay bills, transfer funds, and do some basic investing and trading. Testing this experience is a finite event: test against the users' goals and make changes based on their responses.

Finally, imagine a broadband world in which any connected computer can be turned into an ATM, generating legal tender on the spot. Security measures like retinal scanning and signature matching, which are currently limited by bandwidth issues, are no-brainer necessities here. However, testing such systems and assuring that they provide a seamless experience becomes a huge task. The number of possible errors and security checks are enormous.

Good Problems

Clearly, the benefits of a world in which load times are no longer a concern and computers resemble today's mainframes far outweigh the concerns over creating hugely complex user experiences. But as a Web developer, your job will begin to look more like that of a software developer. If you get used to thinking that way now, your users will thank you in the future.

Joshua is principal of Fruhlinger Consulting, a user experience consulting firm. He is also a writer, speaker, and creative director. You can contact Joshua and learn more about him at