Have you heard this term – uncanny valley?
It was coined in the 70s (yes, way back in 1970!) by the Japanese roboticist, Masahiro Mori who created a graph that plotted the emotional response of a human being to a robot against the increase in the perceived realism of a robot.
In simpler terms what this means is that we (humans) tend to like the Bot experience upto a point at which the artificially created realism of the bot gets closer to human behavior and after that, the excitement of the Bot drops sharply. Perhaps the behavior of the bot becomes so superficial that we cannot take it anymore. The graph showed a significant dip at the point where the robot’s resemblance to a human is perceived to be almost exact.
So, the wikipedia definition of Uncanny Valley is, the hypothesis that human replicas which appear almost, but not exactly, like human beings elicit feelings of eeriness and revulsion among some observers. Valley denotes a dip in the human observer’s affinity for the replica, a relation that otherwise increases with the replica’s likeness.
Here is a popular representation of the some of the famous super-human movies represented along the Uncanny Valley, which is again a representation of the different characters in the movie to the extent of their realism and human liking.
Uncanny Valley for the chatbots experience.
Most of the chatbots today operate as retrieval based models based on a repository of pre-defined responses, in contrast to the generative ones, that creates responses out of thin air. Today’s bots are good at answering questions and following instructions, mostly on a preset path in the form of a decision tree or following some basic intent discovery mechanism. Hence the users are very much aware they are interacting with a machine, or a piece of software and very rarely does the experience get closer to being a human.
Here is my experience on playing around with one of the popular bot available in the Slack ecosystem. Along with the usage came some good learning on how to design a bot for our conversational learning platform.
To begin with, the Snippetsbot is not intrusive (aka pain), except on the day when it has to collect the snippets. Remember the paperclip assistant that once came with Microsoft Office – hated it, especially the animated version that appeared more creepy.
Good conversations always start with a gentle warm up, especially knowing the context.
Snippetsbot wants to work right from the get go and forces you into introducing it to the rest of the team. You cannot complain of your busy schedule coming in the way of introducing a newbie to the rest of the team. No chit chat, handshakes and walking around the floor. Cut the crap, get to work, right away.
By the way, note the introduction – “Thanks for installing me.“. It doesn’t say, “Thanks for inviting me.“.
It’s not rude. It asks and waits for your introduction before barging into anyone’s work space. Remember the stare we give to any stranger who walks upto our desk, asking for a status update? SB is very mindful of us humans and the organisational culture. In fact, it even writes its own introductory mail and gives it to you.
Once you complete the introduction of Snippetsbot to the team, it appears at my desk with its own warm introduction. One of the key aspect in the art of conversations is the warm-up and introduction.
Predictability is a virtue.
What I like even more about Snippetsbot and what helps its acceptance to a wider audience is that it knows its limitations or it is extremely good at operating within its well-defined boundaries.
Even at work, these are the people I often admire, who are very much aware of their limitations. No false promises or setting up lofty expectations, they are just so reliable, trustworthy and darn good in whatever they do within their well-defined boundaries.
These are good design principles to follow while building a chat bot – do few things and do it really well.
Be your word and do what you say.
Once you introduce the bot to your team and set a time line, it is extremely good in following the timeline. That’s what it is meant to do.
Starts with reminders for you to key in your snippets on the Friday with few nudges to begin with.
and a slightly vocal, final call.
After all, it’s a poor Bot, it cannot penalize you, yet, for misbehaving.
The Snippetsbot doesn’t have a complex instruction set. Very simple ones aligned to its purpose and it doesn’t leave it completely open to human language. That way, you can call it a ‘command line interface’ than a ‘chat bot’, but, it serves the purpose.
Even when you make a mistake, it helps you with the dialect it can converse with. Very important design factor while building the conversations. Things will go wrong, especially, when you deal with humans and you need a graceful exit or ways to help.
How complicated is that?
Conversations cannot happen in isolation.
Once you decide to start entering your snippets, it very promptly reminds you of the list that you had planned to do last week as if to say ‘btw, this is what you said you will do. Are you making progress?’ Context is the king in clever conversational interfaces.
Along the way, it also offers some tips or best practices – ‘don’t write stories, keep it short.’ Very clever indeed.
For every accomplishment, that you claim to have accomplished, the bot offers – only what it can offer best – a bit of cheer and pat on the back. Be passionate and keep the conversation flow going.
The more you write as accomplishments, here comes a word of encouragement.
One key design element in conversational UI – reconfirmation of the input. It promptly provides a confirmation once you save your snippets.
Monday morning, bang, you have your consolidated weekly report delivered to you, right on Slack.
Garbage in, garbage out.
People often ask me, what if I type in garbage in my snippets or what if I ignore its reminders?
Of course, if you want to fool around with it by giving incorrect status or not responding to its nudges, go for it. The bot leaves it there and goes about its job as if to say, ‘Hey, I am here to help you. If you don’t need me, so be it.’
This is where I feel Snippetsbot is a great example of a Bot staying just right at the top of the uncanny valley graph, before taking the plunge into the valley.
The moment the Bot starts interpreting my snippets or start showing off its artificial intelligence, we risk the plunge into the uncanny valley. And, this is what most of the chatbots might attempt to do and create gibberish user experience.
In the case of Snippetsbot, I know it is a bot when I installed it and I know what it can do. I use it for what it’s good at. No more, no less.
There lies the success of any of the real application of AI in our life. It can at best augment our life.
Any more than that runs a huge risk of crashing into the uncanny valley!