Computing, in the beginning, was all about less. It had to be – the computers were extremely limited, therefore almost all procedures were suited for a singular task with little room for error. Up until the introduction of the GUI, there wasn’t even the idea of multiple processes; you had to finish what you were doing, and therefore for everyone’s sanity, everything was designed with the speed and efficiency of process completion in mind.
In the desktop era, it eventually became all about more. Bigger monitors, more resolution, faster processors; more, more, more. As a result, designers and engineers began to create products that were packed dense with features, stretched to the edge of the screen with functionality for every use case. Sure, there was still a need for hierarchy and an architecture to the options, but they were a secondary concern to the density – why not have it all, if the form factor allowed for it? The Microsoft Office suite is a vestige of this, while more straight killed AOL’s Instant Messenger.
Then the mobile revolution happened, and it kicked off an inexorable revolution. Just as Moore’s law dictates a reduction in size while maintaining power, the reduction of form factor dictates that products eventually get distilled back down to the basics. An great example here is Tinder, which reduces the process of finding a mate to the most basic form imaginable. Or Twitter – 140 characters, bite sized, on the go for the mobile user.
This all leads me to what my subject is, which is chat bots. While the rise of the bots isn’t anywhere close to the revolution that the desktop, Internet, social, mobile epochs have proven to be, it’s certainly something that has caught the imagination of the technology world. And before I get too long-winded, I’m going to tip my hand on them: they’ve got it all wrong.
Let’s say you want to order lunch, and like me, a decent chunk of your time is spent in Slack collaborating with your team and getting into arguments about the proper ranking of Starburst flavors. Lucky for you, Postmates has a command line integration into Slack, and it wants to remedy that ache in your belly.
@postmates tacos near 37 east 28th street, 10036
So let’s stop it there, after the very first command. If you don’t know this already, please understand that handling even that initial request requires an ENORMOUS amount of intelligent, difficult code. First, you have to build the basic language processing to even parse the request. Second, you have to have a repository of locations, in order to determine the vicinity of the request.
Third, now, you have to start making some assumptions. For example, since there’s no scalable way to query in real-time to see if a restaurant is open, Postmates would have to pull that potentially outdated information from somewhere, and then assume that if the request falls within that window, the place is open…assuming of course that since you didn’t specify a delivery window, that you want it immediately, and also assuming the request itself is formatted in a way that parser can understand. Further down the chain, it has to assume that the menu it has saved is correct. And so on, and so on.
But let’s get back to the chat interface of this. Since the interface is reduced down to a very minimal form – unlike a desktop version! – it’s naturally not going to allow for much path deviation or special requests. (Much like the software built before the desktop revolution, of course. But I’m beating it into the ground at this point.) Ask yourself: is it going to be easy to request no beans on your taco? What if you want a hard shell instead of soft? What if you want to tell them to make the steak well-done, to call when they’re downstairs, or that you don’t need a plastic knife because there’s fifteen million at your office already? It’s really no different than wanting to know if the person on Tinder profile has a college degree; the form factor in which it is presented simply doesn’t allow for an effective way to branch out to that level of detail.
To do all of that effectively, you have to overlay so many steps that it kills the very utility it had in the first place. Eventually the user is going to wonder if it’s really worth all of the effort, especially when there are other interfaces for the same task that are likely quicker and easier to use. At a certain point, it’s like tweeting from your Wii. Yeah, you can, but why? Where’s the utility relative to other options?
That’s not to say that I don’t think that chat bots will be useful for certain tasks. Far from it, actually. You just can’t however go into it trying to replicate the functionality that a more robust form factor will allow, which is why I think none have yet made a significant impact. Early mobile development suffered from this problem – trying to mobilize all of their desktop functionality – until people realized that it required a completely different level of thinking. Unfortunately for bot programmers though, a lot of the hardware that phone manufacturers eventually put into their phones to facilitate that creativity (cameras, GPS, accelerometers, etc.) are going to be impossible to integrate into a chat bot.
So going back to my initial example, what can Postmates do in this arena? Through the bot itself, probably not all that much, which is it’s a bit perplexing to see so many companies try. What it could do however, is try to figure out a way to accept a parameter-rich link that is generated from the bot. Maybe something like this:
@postmates tacos near 37 east 28th street, 10036
>Sup Nik, hungry, eh? No worries. There’s six Mexican restaurants within 0.5 miles of your address. The highest reviewed one is Dos Toros.
Now imagine that entire string is a link, that sends a string of parameters into the Postmates app or website. Voila – the discovery aspect is knocked out, and you’re already on step three or four of the process. Dos Toros is preloaded, as is your receiving address, as is the request for tacos, and now you’re on an interface more ideally suited for handling all of the branching that might occur.
But getting back to my point, right now, the people building the bots are getting it all wrong, in the same way that early mobile development was all wrong in trying to “mobilize” desktop functionality. The Apple Watch, for example, doesn’t have the form factor to do much by itself, but it certainly is an effective and streamlined interface for your phone; this is a good start. The sooner chat bot developers turn the corner and start thinking of their tools as interfaces and/or completely new paradigms, the better.