Why Is Building Bots So Hard?
Despite the almost hysterical hype surrounding chatbots, we still haven’t seen an impressive bot. Almost all bots available on the market…
Despite the almost hysterical hype surrounding chatbots, we still haven’t seen an impressive bot. Almost all bots available on the market today are underwhelming at best. More likely, interacting with most bots ends up being an exercise in futility. This experience of futility results in ever growing frustration. Interacting with shoddy bots can be so irritating that we often leave the session infuriated.
So regardless of what the media outlets that are pimping bots are telling us, building bots is anything but easy. The real question therefore is: why is building bots so hard? We will try to answer that question here.
Tacit Assumptions
We embark on many of our activities by front loading some assumptions. Sometimes these assumptions are visible, but often times they are invisible. We call such assumptions ‘tacit’, meaning unspoken.
More often than not, tacit assumptions are not good for us. As Socrates once said, “unexamined life is not worth living”. Doing anything without examining causes and conditions that create current activity is always myopic.
With that in mind, let us now examine tacit assumptions guiding regular software development. Whenever we join a new software development project, we bring with us some assumptions. Such tacit assumptions are inevitable, so we’d better examine them. A most typical assumption is that we are building a product for some experts to use.
Let’s examine that assumption some more. Just to remind you — we’re talking about building software products (apps). We envision that the app we’re building is for people who may find it useful. And the way people find an app useful is if they use it as a tool. If our target user is a photographer, for example, then we build a photo editing app. We are aiming at photographers who may find that our app helps them do their job.
When you think a bit more about the aim that our app has set, you must come to a simple realization. An app is a utility, or a set of tools that aim at enabling people to deliver their expertise. In the case of a photo editing app, the tacit assumption is that its users will be expert photographers. In the case of a travel app (such as Expedia), the tacit assumption is that its users will be expert travellers. And so on.
What About Bots?
When we examine the current batch of bots, we see that they come with the same set of tacit assumptions as apps. In other words, bots assume that their users are experts who want to use a bot to get things done. So, from the bot’s perspective, its user is in the driver’s seat. Same as from a typical app’s perspective its user is in the driver’s seat.
Thus we see bots who expect their users to tell them every step the bots should make. Typical bot is acting as if it’s just a simple tool, waiting for humans to use it. In that regard, present day bots are no different than apps.
This is a huge mistake bot builders are making right now. First of all, bots should never propose to do the same things as apps. Why is that? Apps are good at allowing users to manipulate them to get something done. Apps come with built-in affordances that users learn how to use. As such, apps are ideal for offering the tooling experts need.
When we attempt to build a bot that will replicate the tooling that apps have, we’re setting ourselves to fail. Rewriting apps by giving them an appearance of a bot is a complete waste of time. We see that bots are terrible at serving experts.
Bots Are The Experts!
Unlike apps, bots are not utilities nor are they tools. Bots may use utilities and tools in the background, but they don’t offer utilities to the users. Instead, bots offer expertise.
When using apps, people find themselves doing a lot of heavy lifting. Numerous tiny little steps get performed while using an app. The app has no opinions, doesn’t know anything, and is relying on the user to guide it.
Nothing like that can happen while using a bot. Instead of expecting users to do the heavy lifting, bots do it themselves. Instead of waiting on users to tell them what should the next tiny step be, bots know how to walk the walk.
Conclusion
It is not difficult to imagine how bot building requires an entirely different set of skills. Teams with strong skills in building apps fail miserably when they try to translate those skills to bot development. They’d need to completely revamp their approach if they are to build quality bots.
And that’s the reason why bots are so devilishly hard to build. Wrong orientation, loads of tacit assumptions, result in useless bots. It’ll take some time before we see this reorientation occur in the bot building teams.