Not so long ago, using the Internet meant one thing: sitting at a desk, at home or at work, in front of a personal computer. The user might have had different purposes in their use of the web, but much of the conditions under which they used it remained constant. As designers and developers, our assumptions about these conditions were baked into how we created websites and services.
Now, however, those assumptions are all out the window. Starting with the introduction of the original iPhone, every few years has brought not only new Internet devices, but entirely new form factors. Smartphones, tablets, and soon wearables such as smartwatches and glasses will create entirely new use cases for the Internet. People now interact with the web as they drive, shop, work, commute, exercise, eat in restaurants, and drink in bars. Additionally, multiple device usage has become commonplace: People start tasks on one device and finish them on another. Data analysis of user behavior makes mass personalization and behavioral segmentation possible. Who a user is, where they are, what they are trying to accomplish, and the type of device they’re using all matter. The result: The next generation of the web will be driven by context.
Google Now and Apple’s Siri are examples of purely "contextual" applications, each designed to interact and respond to an individual’s unique circumstances. Smaller players include calendar apps like Tempo and the virtual assistant app Donna, both for iOS.
But there’s a problem. The way we currently design websites and services does not fit with the potential of the contextual web, and the capabilities that this new technology affords. We need to find a new way to design web services. We need a new way to think about web services. And the key is to back to basics—back to long-lost art of the face-to-face conversation.
But designing a new generation of contextual apps and websites is extremely difficult, in part because we lack a language in which to describe them. That’s where the face-to-face conversation metaphor comes into play. Face-to-face conversations are all about intuiting the context of the person to whom you're speaking and responding appropriately. By modeling these new apps and websites on conversations, the Internet will become a more dynamic, more natural, more conversational medium for humans interacting with software.
This new breed of applications will be the fruit of decades of artificial intelligence research, combined with the relatively new proliferation of Internet-connected devices. Smartphones, tablets, and wearable technology can all gather data for the purpose of informing contextual applications about their users’ circumstances.
Currently, we have a very user interface-centric way of approaching application design. A single user interface is the comprehensive conduit for a user’s interaction with an application. The "boxes and arrows" approach that is popular in UX design reflects this thinking. Up until now, this approach has worked fairly well, however it is poorly equipped to articulate this new generation of contextual applications.
Without the right metaphor to bootstrap our thinking, we’re stuck in a design bottleneck. The right design metaphor will act as a bridge between the way we’ve understood application design in the past, and the way we will do it in the future. For example, in the early years of cinematography, filmmakers thought of what they were doing as capturing theatrical performances on film. Only decades later did filmmaking evolve into a distinct art form of its own.
The metaphor of the conversation encompasses all of the natural cues we require in order to understand how to properly build contextual applications. Here are 10 ways in which conversations can be used to understand contextual application design.
- User Personas: When speaking with someone you take their personality and character into account. This informs how you interact with them. For example, some people might be more fact-based in their communications, whereas others may prefer a more emotion-oriented approach to interaction. In a contextual application, taking the persona of the user into account can inform decisions about the application’s communication style and emphasis.
- User Affinity: Your conversation partner has specific likes and dislikes. If you know this, it will inform your response to them. In an application, directing the user toward content or functionality that they are likely to appreciate improves the utility of your service.
- User Goals: In a natural conversation, you frequently become aware that your conversation partner is attempting to achieve a specific and immediate goal within the conversation. A good conversationalist will help their counterpart find a way to accomplish their goal. Likewise, applications should dynamically optimize themselves in the service of user goals.
- User Environments: Conversations don’t take place in a vacuum, they occur within an environment. An environment includes a physical location, such as a person’s home, work, or commute. Locations might afford specific opportunities, such as Jane’s proximity to the grocery store enabling her grocery shopping. Besides a location, an environment can also include hardware technology: Is the interaction with the app taking place through a phone? A car? A tablet? A pair of glasses? What kind of sensor data such as biometric information—pulse, blood pressure—are available? What are the ambient light levels and ambient sounds? Applications should take environmental factors into account and adjust themselves accordingly.
- Aggregating and Analyzing Context: The four contextual dimensions: Personas, Affinity, Goals, and Environment (PAGE), comprise the complete context of a conversational participant. Context paints a revealing picture about the conversant that can explain their behavior. We conduct natural conversations within this context and, similarly, applications should understand the aggregate contexts of their users.
- Your Agenda: In addition to the context of your conversation partner, in any conversation there is also your agenda to consider. What are you trying to accomplish? Applications have natural innate business goals, such as delivering advertising impressions, converting e-commerce leads, or simply providing good service to users.
- Modal Response: The aggregated context of your conversation partner, plus your agenda, combines to give you everything you need to know to converse appropriately. In a natural conversation, you would process these inputs (usually unconsciously) so you could respond in the most effective way possible. Your response would contain specific content and style, all of which were tailored to be appropriate to the context of the person with whom you were speaking, and to be delivered in the best way to advance your agenda. Contextual apps should also respond modally with specifically tailored functionality and content.
- Continuity: You usually wouldn’t just forget about the last conversation you had with someone because a couple of hours or days had passed. If there were unresolved issues you’d pick them back up where you left off. Natural conversations can also survive a switch of environments: For example, if you were texting with someone you could switch to a voice call and continue the conversation seamlessly. Contextual apps should be able to do the same. You should be able to resume a session with a contextual service and have the important parts of your previous interaction still relevant. Additionally you should be able to move from environment to environment (changing location, devices etc.) and continue the same conversation as you do.
- Ubiquity: Conversations can occur anywhere in the world, online or offline, and contextual apps should be able to do the same. In general, the distinction between the physical and digital world is being steadily erased. App designers should think in terms of contextual services as they interact with users in the real world.
- Authenticity: As humans, we are hardwired to make authentic connections with others, and in turn we should demand authenticity from our applications. An authentic interaction is one that works the same way that face-to-face interactions with individuals work. Authentic interactions are satisfying, whereas inauthentic interactions are highly frustrating. Have you ever used a phone tree, entered your account number when prompted, just to then be connected to a customer service rep who immediately asks for the same number again? There is no continuity in the interaction, and therefore it doesn’t resemble communication with a sane individual. As a result it feels inauthentic and disrespectful to the user. With contextual applications we should seek to build them to act as authentically as possible—making users feel like they are interacting with a reasonable, intelligent, and sane human being.
[Image: Flickr user Wayne Wilkinson]