BOTS ARE THE FUTURE OF SOFTWARE.
Bots are going to disrupt the software industry in the same way the web and mobile revolutions did. History has taught us that great opportunities arise in these revolutions: we’ve seen how successful companies like Uber, Airbnb, and Salesforce were created as a result of new technology, user experience, and distribution channels. At the end of this book I hope you will be better prepared to grab these opportunities and design a great product for this bot revolution.
Our lives have become full of bots in 2017—I wake up in the morning and ask Alexa (a voice bot by Amazon) to play my favorite bossa nova, Amy (an email bot by x.ai) emails me about today’s meetings, and Slackbot (a bot powered by Slack) sends me a notification to remind me to buy airline tickets to NYC today. Bots are everywhere!
There is a lot of talk about bots these days, and a lot of misconceptions. In order to demystify these misconceptions, let’s start by providing some of the history of bots and defining bots—what they do and why they are important.
I wrote my first bot 16 years ago. I was an engineer at a company that provided SMS infrastructure that was about to be deployed in Europe. You can imagine that testing if texting works in a network of one (as the system was not online yet, I was the only one on the network) is a very lonely experience. So I created a small program to answer my texts. It started as a bot that repeated everything I said—I would text “hello” and get a “hello” back—but that became boring really fast. I started adding a persona to the bot, adding funny sentences I heard in the office. At the end I had two personas I was chatting with constantly, “Bob” and “Samantha.” I kept growing their vocabulary and skills and found it extremely therapeutic to converse with them via text.
But bots go way back to 1950s, when computer scientist Alan Turing contemplated the concept of computers communicating like humans. Turing developed the Turing Test to test a computer’s ability to display intelligent behavior equivalent to that of a human. A user had to distinguish a conversation with a human from a conversation with a computer, and if they failed to do so, then the computer would have passed the Turing Test. Alan Turing was one of the fathers of computer science, and we still refer to the Turing Test when we talk about intelligent bots.
One of the best-known bots from the past was Eliza. Developed by Joseph Weizenbaum in 1964 for the IBM 7094, Eliza was a psychotherapist bot that talked to users about their problems, invoking strong emotional reactions in many users even though it was clear they were interacting with a bot and not a human.
At a very basic level, bots are a new user interface. This new user interface lets users interact with services and brands using their favorite messaging apps.
Bots are a new way to expose software services through a conversational interface. Bots are also referred to as chatbots, conversational agents, conversational interfaces, chat agents, and more. I will try to be consistent and call them bots in this book.
In many cases, bots are digital users within a popular messaging product, such as Slack, Facebook, Kik, and more. Unlike most users, they are powered by software rather than by a human, and they bring a product, a service, or a brand into a given messaging product via conversation. In this book we will focus on these cases, as they are the most common, but I want to acknowledge that there are other ways to expose a bot, and we will cover these when we talk about bot types in Chapter 2.
A common mistake is to think that the bot is the service itself—the bot is only an interface into the service, in the same way a website can be an interface for booking a flight. You can also use a mobile app to book a flight or call a human agent that can book that flight for you, all exposing the same service.
The bot is only an interface into the service, in the same way a website can be an interface for booking a flight.
Why do we need these bots? Why would we want to expose a service through a conversation? Why not just build a web page (or a mobile app), like we have been doing for the last 20 years or so? Isn’t that much easier than building bots?
The answer is that things have changed in the software industry and in user behavior, and these changes are making bots more and more compelling to software companies. Here are some of the key developments we have seen:
In the last few years most users have adopted mobile, and it has become harder and more expensive to impress and engage with them though the web. This has made a lot of software providers turn to creating native mobile apps (apps that run natively on your phone, for example Instagram or Google Maps) and exposing these mobile apps through app stores.
The mobile apps ecosystem quickly became saturated, making it harder and more expensive to compete. In addition, users became tired of installing and uninstalling mobile apps, and only a very few apps prevailed.
Surprisingly, the apps that prevailed and became very common were the messaging apps. Most modern users have three or more of these apps on their phone. (Open your phone and count the messaging apps you have there—don’t forget to include SMS, email, and Siri/Google Now.)
User mindshare has stuck with the messaging apps. Users spend most of their time in these apps—this is even a growing trend with young users who do not have the “old” notion of the web, and spend most of their time in chat. Messaging and the ubiquity of connectivity mean that people are more available and responsive via messaging than alternative, indirect modes of communication.
These new apps opened up the ability to expose services, products, and brands on these chat platforms. Slack and Kik launched their platforms in 2015, followed by Facebook, Skype, and Apple in 2016.
In conjunction with these user and industry trends, technology has made a leap in natural language processing, making it easier (though not easy) to build and construct conversational interfaces.
Figure 1-4 sums up the interface’s evolution.
It is important to note that mobile interfaces were better than web interfaces in many ways and could facilitate new use cases (such as location-based services and camera-based services), but mobile was not better than the web for other use cases (such as long document creation). The same thing is true for bots. As a designer you will need to explore which use cases are better for this new interface—bots are a great new hammer, but not everything’s a nail.
Another way to look at bots is as another venue to engage with your users. You can still provide a dedicated website or a mobile app and integrate it with a messaging platform of your choice to re-engage with your user and expose different aspects of your service.
Figure 1-5 shows an example: an airline app exposing some of its services, such as buying a ticket, using a traditional web interface, and engaging with users later to report on flight time changes using the bot. The biggest value of the bot here is that users are already accustomed to getting notifications through their messaging apps, so the engagement rates are much higher.
The biggest value of the bot here is that users are already accustomed to getting notifications through their messaging apps, so the engagement rates are much higher.
On the other hand, a good example where a service can be 100% encapsulated in a communication app is Amy Ingram, from New York–based startup x.ai. Amy is a personal assistant that sets up meetings. When people email me and want to meet, I add Amy to the email conversation (by CCing her email, firstname.lastname@example.org), and Amy does all the rest! The bot is connected to my calendar and knows when I am available; it has learned from me when and where I like to meet, both in person and online. Amy replies to about 300 emails a month on my behalf. We will talk about that use case at length in Chapter 6, and hear from the founders of x.ai to learn about their experience.
Just to show you the value of a bot like Amy, here’s an example of a week’s report (Figure 1-6).
Like with the web and mobile revolutions of the past, the software industry is transitioning through phases of adoption with the development of bots (Figure 1-7). The phases are:
What are bots? Why do we need them? At this stage most users and software providers are not aware of bots or how to use them (we are still in this stage, at the time I’m writing this book).
We need a bot interface too! At this stage a lot of software vendors start building bots. Most bots suck at the beginning, as there is very little experience in the industry. (We are rapidly moving toward this phase.)
We are going with bot-first! After a while, several bot builders experience success, and the bot user interface becomes common. Startups begin to adopt a bot-first mentality.
We are bot only! Some services are built with a bot-only user interface, and others with major parts of their workflows happening in conversation.
The same is true for user adoption. Until recently very few users (outside Silicon Valley) have been aware of bots, but that is beginning to change rapidly with Facebook, Kik, Google, Amazon, and other bot platforms driving consumer bots into the market and Slack promoting bots for work.
Bots differ from one another in many aspects. There are B2B bots and B2C bots, team bots and personal bots, and a huge amount of variation even within these spaces. Bots on Facebook are very different from the bots on Kik, even though they are both consumer bots. There are also super bots that expose a set of pluggable services rather than a single service, giving you the ability to add a skill to their bot rather than expose your own bot interface.
We are at the dawn of a new technological era—an era in which software is going to engage with us on our own turf, and conversational interfaces are going to surface in more and more of the tools and services that we use every day. This revolution is going to change our work lives as well as our experiences as individuals and as a community.
In the next chapter we take a deep dive into different types of bots. This will give you a deeper understanding of the ways bots engage with humans and a better ability to decide which type of bot you want to design.