Voice is the most natural way for us to exchange information. As we engage in conversation, we're gradually building and modifying our understanding of each other and the world around us. But conversation is complicated. So complicated, in fact, that even the best of us can be bad at it at times. We've all found ourselves engaged in a “conversation” with someone who really wasn't interested in what we had to say.
In this interaction, Akersh (playing the voice of an Alexa skill) is really just practicing his monologue. Cami's definitely there and trying to participate in the conversation, but she's not getting very far.
There are a few problems with the way Akersh is interacting here, but chief among them is that he's simply not listening. It's clear that he's more interested in what he has to say than anything Cami might offer.
Of course it's more complicated than just listening to the other person. Skipping ahead to another interaction, Akersh has learned to listen, but there's still a major issue. Take a look:
Now Akersh is capably listening to the things Cami says, but when she returns later, he's behaving as though they've never met. How frustrating!
You might have experienced these sorts of issues in small ways when speaking with others, but the friction is magnified for people when their conversational partner isn't human.
How can we make sure users have friction-less and fun conversations with our skills when conversation requires the skill to update and remember contextual details fluidly?
As the skill designer, you have to plan ahead, making initial decisions about what your skill will remember within AND beyond any one given session. You also have to look at how the skill will capture different kinds of information to prevent asking the user to repeat themselves unnecessarily.
But it doesn't end there. Conversation is rarely as straightforward as we design it to be. So instead of seeing your design as a straightforward way for your skill's users to get from point A to point B, you need to see it as an ongoing interaction between your skill and outside forces. You need to listen to the user to understand the flow of dialog with your skill and update your skill's design to react fluidly to what your users have to say.
So, How Is Designing for Conversation Like Sailing?
Recently, I had a chance to catch up with an old friend who loves sailing. Never having sailed myself, I was interested to learn about his first few solo-sailing trips on which he got lost a few times before learning that it's impossible to sail in a straight line.
My friend's first impulse was to choose a direction and simply attempt to steer the boat toward it. When you sail, though, you're at the mercy of the wind and the waves. To go straight, you have to pay attention to the changes in the environment and constantly correct course by adjusting the sails and re-positioning the boat.
As a result, going straight in a sailboat actually looks more like zig-zagging in a general direction. Doing this well requires a continual understanding of where everything was previously in relation to where it needs to be in the present moment. Sailors call this “tacking.” I call it having a conversation.
Like sailing, participating in conversation requires constant attention to the flow of dialog and adapting to what's happening around you, not just plowing ahead towards a goal. To reduce the friction your users may encounter with your skill, you must plan to continually check in on the state of the conversation. After each check in, you'll need to start tacking. To do this, you'll need to think about:
- The kind of information your skill should remember
- When it makes sense to update that information
- How updated information should be reflected in the present state of the conversation
Adjusting course effectively will enable genuine dialog to take place. Tacking in the context of conversation takes time and practice to get right. When applied to Alexa skills, it also requires research and forethought. It's probable that developing your skill's ability to listen and adjust the flow of conversation based on context will take time and iteration. Don't let that stop you.
Start Designing for Conversation in Our Self-Paced Training Course
The tools and patterns you need to develop conversational experiences are already available via the Alexa Skills Kit. In the new Designing for Conversation course, we'll show you how to reduce friction for your skill's users by taking advantage of the latest advanced features and patters like dialog management, context switching, conditional slot collection, and memory.
- New Alexa Skills Training Course: Designing for Conversation
- A Primer on Communication: Creating Conversational Transactions When Designing for Voice
- Build Advanced Alexa Skills Using Dialog Management
- Codecademy: Conversational Design with Alexa
- Why Conversational Design Matters: 4 Hallmarks of Conversational Skills
- Why Writing a Script Is the Best Way to Design for Conversation
Build Skills, Earn Developer Perks
Bring your big idea to life with Alexa and earn perks through our milestone-based developer promotion. US developers, publish your first Alexa skill by October 31, 2018, and earn the new Echo Dot. Publish a skill for Alexa-enabled devices with screens and earn an Echo Spot. Publish a skill using the Gadgets Skill API and earn a 2-pack of Echo Buttons. If you're not in the US, check out our promotions in Canada, the UK, Germany, Japan, France, Australia, and India. Learn more about our promotion and start building today.
Source: Alexa Developer Blog