Chatbot frameworks, toolkits and the rest make it easy to build bots these days. And everyone seems to building some kind of bot or the other. How do you design a good chatbot? How does that have anything to do with storytelling?
Why Is Designing A Chatbot Difficult?
Over the last decade, the focus of developer efforts has shifted from web pages to mobile apps to, now, chatbots. What does this mean for the product developer? As a product developer, each platform seems to be giving us progressively lesser screen real estate and it is becoming increasingly difficult to give all the information we want to the user.
Shifting to mobile apps from web pages tended to result in simplified versions of web pages (as a programmer, github.com is a primary example of this). In several cases it was so simplified that (at least to the power user) it seemed to lose essential functionality. In chatbots, you are forced into an even smaller window for providing information. On what basis are these decisions made?
The Design Perspective
From a product design perspective, it can argued that the smaller screen real estate is a good thing. Constraints force you to think about the core of the problem. On a mobile screen, there is only so much information that you can display at any given time. As a designer you need to prioritize what this is.
On the positive side, this is why mobile apps seem to be a lot easier to use than a website. The designer is able to control to a much higher degree the amount of information that you have and the number of actions you are permitted to do at any given time; thus controlling the story they want to say. On the other hand, this simplicity comes from sacrificing some advanced functionality (that does not fit the story) from the mobile app and forcing users to shift to another device for advanced functionality.
Chatbots sort of take these constraints to an extreme. You can now only communicate with your user through messages. On the one hand this is a recipe for a wonderfully guided and structured experience because, in a sense, you have complete control over the user journey. In another sense, this control comes at a huge cost. It is highly likely that the information that you provide is not the information that the user wants and they will get frustrated quickly and leave. This is what happens when the chatbot doesn’t respond as the user expected leaving behind frustrated users.
Another way to describe this would be that the user wanted one kind of information and they couldn’t find a way to get that information at that point of time in the chat interface due to the limited forms of interaction available to them. How do we tackle this problem?
Managing Short Attention Spans
It is interesting to see the parallel in writing articles. While long-form articles do appear in magazines like the Atlantic and the New York Times, one does increasingly get the feeling that these have become the exception rather than the norm. People seem to prefer bite sized amounts of information. I’m not just referring to the extreme of Twitter’s “microblogging”. As another example of the trend towards conciseness, look at the metric on articles published on Medium where we strive to reduce the number of minutes of reading that’s required for the article.
Moreover, technology has enabled us to push articles to large audiences at an unprecedented speed. Combined with the shift to conciseness, this ease of publication means that we see lots of posts that don’t really say anything.
However, conciseness does not necessarily have to come at the cost of quality. For instance, take the case of an email: the skill in writing a short email to a busy person is not in writing it like telegrams were written back in the day. Rather, the skill is in being able to get to the essence of what you would like to say in the shortest possible email.
The essential difficulty is in being able to say a complete story while getting the right information across in as concise a manner as possible.
This same challenge applies in almost every thing we are doing. From a scientific perspective, systems have a natural tendency to move towards higher entropy unless energy is applied in reducing it. By definition, reducing information means reducing entropy; but by signal compression done correctly, low entropy need not result in information loss because the correct information is still transmitted. How does all this relate to developing a chatbot?
Know Your Story
You need to do three things to be able to compress information, regardless of the domain: (a) First, you need to know the objective in terms of what it is you are trying to achieve; (b) Secondly, you need to understand the domain of the problem and the solution well enough; (c) You need to have the communication skill to be able to understand what is the minimum amount of information of the problem or solution that needs to be communicated in order to achieve the objective that you desire.
Einstein said that you truly understood a problem when you can explain it to a six year old. This is because (1) Firstly, you need to be able to determine what exactly the six year old wants to know because he/she may not be able to ask the right question. (2) You need to know the answer well enough so that you don’t have to hide behind complex words and terminology that can lead to more questions. (3) You need to know what part of the answer is necessary to answer the questions the toddler had asked while raising minimal new doubts in his/her head.
Going back to the previous discussion on writing, in order to write a clear and well written article you need to be first identify the objective of your article and your audience. Once you know your objective and what it is that your audience wants, you need to have the knowledge to address the audience’s concern and achieve your objective. If you have the necessary knowledge, you will then have to chose the parts of knowledge that has to be shared to address the needs of the audience.
This restraint in holding back on the extra information would result in a much more consistent and better article and a better story. And it’s all about story telling!
How Does All This Tie Back To Making Chatbots
In making a chatbot the first point is easiest to handle: identifying the objective and the target audience. The second and third part are much more difficult: having all the knowledge that is necessary to solve the issues of the audience and being able to show restraint and present this information in a manner that satisfies the constraints of the situation.
Determining The Story Of The Chatbot
This is a drastic simplification of the app development process but I believe this is an essential and very difficult first step. Your app, your website and even more so, your chatbot, is telling a story to the user. It has to establish the scene and the situation and guide the user clearly enough that users do not have any doubts about what the bot can do. In a well written story or a well made movie, some things may not be explained; however, the overall story will be coherent enough that you won’t have questions till you reach the end of it. Similarly, your chatbot or app may have missing features but as long as users know what to do the experience will be good.
As with a story, the first draft is likely to be too long and too loose. At this point of the draft, it would be good to send this draft around to a few people to see if the whole thing makes sense. Only after this is done, should you be making cuts and edits to make the whole story tighter and fit into the medium you are planning to use.
Similarly, it would be hard to make a chatbot in one go and focussing on making a chatbot enforces constraints too early. Instead make a website or app that has the features of the chatbot first and use that as a basis for your chatbot.
More concretely, a constrained environment doesn’t just constrain the amount of information you can give to a user. It also constrains the amount of information that you can gather from the user. This is easier to explain with an example. On a website, the particular page and the element that failed for the user can be pointed out easily with analytics. On a chatbot you need to be able to discern this from just the frustrated messages of the users. The error may well be in the mental model that has been created in the user of what the bot is able to do.
How AI Helps With Constraints
This is also one of the reasons why AI has a huge role to play in chatbots. In responding and presenting the correct information to the user i.e. the particular information that the user needs at that point, the chatbot is constantly changing the interface with which the user is interacting. NLP, knowledge representation, reasoning, learning and intelligent agent design all come into play in being able to do this. NLP helps determine what it is the user wants. The internal knowledge base and learning that the chatbot has done will enable to determine what exactly is the information that the user needs and then it presents this information to the user. Without some level of intelligence, you will inevitably have frustrated users because you will not be able to provide the right information.
Telling a good story — be it in a blog, a book, a thesis, a presentation or an app- is not easy. However, becoming better at telling a story can help you make better apps and bots and in a whole lot of other things as well. If you have experience creating an app, does the story telling analogy resonate with you? Do you think it applies to other domains as well? I’d love to hear your thoughts!