We converse everyday, but do we really know what makes a conversation good or bad? And, do we know how to improve them?
Designing a Conversation
How do we start meaningful conversations? And how do we structure them? I find these questions difficult to answer… my background is geared at building software, and communicating with a human isn’t as straight forward as I expected. I mean, we’ve been talking for most of our lives. We learn and interact with others every day. So why is designing a conversation proving to be a challenge?
Let’s start this journey off by asking what is conversation?
The first thing that came to mind, without research or upfront reading, is that a conversation is an exchange. Then, I dug a bit further and found a great article written for Interactions magazine by Hugh Dubberly and Paul Pangaro. And I found their definition to be insightful.
Conversation is a progression of exchanges among participants. Each participant is a “learning system,” that is, a system that changes internally as a consequence of experience. This highly complex type of interaction is also quite powerful, for conversation is the means by which existing knowledge is conveyed and new knowledge is generated.
If both participants learn during a conversation, it can be challenging to implement one of the two participants using code. Technology has evolved drastically over the past few years, and we now have a means to build solid foundations that empower us to build Conversational User Interfaces.
Humans often rely on context to limit the expected set of messages used to communicate.
In order to drive successful conversations, we must view every persona, human or machine, as a participant. Then we must define each scenario as a conversation. Be sure to identify clear goals.
What’s in it for each participant
One of the biggest challenges with human-to-machine conversational interaction, is that most messages are preprogrammed. Asking for something new or out of context isn’t particularly useful. And building a model that can learn unknown skills is not trivial. Today we can get close by leveraging Language Understanding Intelligent Service (LUIS), which offers a fast and effective way of extracting intent and entities from utterances. In other words, LUIS helps us to translate a rich and diverse set of messages to a known subset. Fortunately, as developers, we can leverage the LUIS Programmatic APIs to iterate and organically grow the number of intents and entities that our model understands. Sadly, this alone can’t teach a machine new actions. As developers, we still need to interpret each message and react appropriately. This is where, we as technologists, creatively design a static structure that is meant to support a dynamic range of scenarios.
Only in a conversation can we learn new concepts, share, evolve and confirm agreement.
A conversation starts by opening a channel. This occurs when a participant sends an initial message. The receiving participant must understand the message and see the value in furthering the interaction. At any moment, for any reason, participants can decide to end the conversation. Herein, lies the principal challenge for those who design conversations. We must think about the bio-cost of engaging and sustaining an effective conversation.
Bio-cost is the energy, time, attention, and stress that people expend over time to achieve their goals
Once both parties are engaged, the participants use the message channel to share topics and distinctions. Prior conversations, shared context, common language and social norms are important elements that support the construction and understanding of meaning. As humans, we go through a mini aha moment every time we get what the other participant is saying. We make sense out of new concepts, by leveraging what we understand, and by augmenting it with additional descriptive and prescriptive information.
Effective conversations add lasting value to each of the participants.
Following the aha moment, we paraphrase and validate that we are indeed in agreement over the concepts and their meaning. As a result of this agreement, participants sometimes perform actions or transactions. Ultimately, as developers this is our goal. We strive to have a bot that transacts on behalf of the participant and/or the participant who is empowered to act. This in my mind constitutes a meaningful interaction.
Conversations permit us to learn, coordinate and collaborate
Effective conversations highly depend on whether or not the chosen channel is capable of conveying the depth and breath of the interaction. We communicate through images, movement, sounds, text, symbols and objects. Failing to accommodate text, voice, images, metadata and video can become a limiting factor that negatively impacts the participant’s experience.
The design of a conversation from a developer’s point-of-view can be difficult. As a developer, my mind plays tricks on me by making false assumptions. I took most of the following questions from the article mentioned above and I felt that we could all benefit from them in the context of building a bot.
Establish the environment and mindset
- What channel is being used to begin the conversation?
- Is the interruption reasonable in how and when it intrudes?
- What is the bio-cost of the intrusion relative to its benefit?
- Are there better ways to interrupt?
Use shared language
- Is the first message clear?
- Is the language appropriate?
- Is the right dialect being used to communicate?
- Is the formalism aligned to the participant?
- Can the language be adapted to the participant?
Engage in mutually beneficial, peer-to-peer exchange
- Does it offer something to the recipient?
- Does the ongoing exchange convey the potential benefits in continuing the engagement?
- Is there learning or delight?
- Is curiosity or interest stimulated? At what bio-cost?
- Do participants evolve during the interaction?
- How can it be improved?
Confirm shared mental models
- Is meaning easily understood; that is, do the messages speak to the participants’ context, needs, interests, values, and in their language?
- How can messages be made more efficient or clear or entertaining, as appropriate?
Engage in a transaction, execute cooperative actions
- Do both sides agree?
- Can the participants agree to disagree?
- Can sharing or exchange or transaction continue beyond this conversation?
- Has the conversation begun or continued a relationship?
Designing a conversation proves to be a challenge for me, because it gets me to stretch out of my comfort zone. While designing a Conversation User Interface (CUI), I still have to think about software architecture and about the integration between multiple systems. The stretch happens when I have to think about communicating with a human effectively. Having a meaningful interaction, requires us to compete for the participant’s attention. I know; this sounds easy, but remember that we live in a world of noise and interruptions. Herein, lies the opportunity and the challenge. The whole point of human-to-machine conversations is to get things done in the quickest and easiest way possible.
Be engaging and mindful of bio-cost in your conversations. Leverage characteristics that are unique to each channel and make each interaction feel natural.