At present there is a lot of attention on Conversational User Interfaces, Bots, and ChatBots – especially interesting/exciting for those who are interested (design and build) in how people interact with computers.
To reduce ambiguity it’s worth distinguishing between ‘Chat’ and ‘Bot’. Here I consider Chat as the interaction model whose interface is predominantly through natural conversation, the medium is the Conversational User Interface (Conversational UI or CUI for short).
A Bot is a agent (software application/service) that can carry out a task (semi-)autonomously on behalf of the user. Therefore the ChatBot is an Bot who interfaces with the user via conversation but achieves some task autonomously.
For the context of this post, the above definition is what I’m referring to when talking about ChatBots, I’m not particularly interesting in Bots whose goal is to just converse with the user nor just the messaging (Conversational UI) medium i.e. call centre staff assisting via Facebook Messenger. I would also like to differentiate between conversation and dialog-systems where-by conversation refers to natural conversation while dialog being a structured wizard type interaction (technique I used at RunTheRed in the early 2000’s).
The biggest change … Bots
To me, one of the most interesting trends is the rise of Bots, previously known as Intelligent Software Agents. I was initially introduced to the concept around 2005 by Joe Bigus and Jennifer Bigus in their book Constructing Intelligent Agents Using Java. Unlike ‘traditional’ applications that require synchronous and direct interaction from the user, a Bot can be given a job/task and autonomously work towards achieving it with minimal interaction from the user. What this really means is abstracting the user further from the task i.e. a common example you see now is Bots that organise your meetings. This is pretty profound and will (is) significantly change how we interact with computers.
Because of their asynchronous nature, the perfect medium of interaction is via notifications and/or conversation.
Conversational User Interfaces – Party-line
True conversational interfaces require no learning on behalf of the user, it should be the case that the user can just converse with the interface naturally, we’re not there yet but we’re definitely moving in the right direction.
But despite this and ignoring that 80+% Smartphone usage is done in social networking apps, Conversational UI’s address a current problem with ‘Apps’, the cognitive effort in discovering, obtaining, learning, and managing them – highlighted nicely by Scott Jenson in his post Apps Must Die.
Conversational UI’s (potentially) make things a lot simpler, interaction is done through one interface and through a consistent and familiar/natural interaction model (albeit it’ll most probably be a hybrid approach to allow for more complex interactions e.g. embedded widgets). I recently read a post suggesting the Conversational UI’s becoming the new OS (or at least the core interface) and this seems very plausible – abstraction helps us manage complexities, especially important as we augment our environment with computational power.
But the success of the medium will also be what breaks it; We’re seeing a steady supply of Bots from the new and old, both trying to own that one-to-one relationship with the user. As with Apps, this does not scale, Apps are difficult to discover and have terrible retention rates – Bots will suffer the same consequence, which brings me to the title of this post – the rise of the middle man.
It is now clear why Microsoft, Amazon, Apple, … have invested so much in their VPA (Virtual Personal Assistants). For a few trusted and dependent parties users have that direct connection but for everything else will be proxied through Bot(s) whose sole job it is to discover and orchestrate with external services (including third party Bots). This will, no doubt, also extend to your medical/health and finances as it’s unlikely that you will have a single provider for either of these services (or maybe you’ll have a suite of core Bots responsible for different aspects of your life) and require something to manage those relationships and be responsible for aggregating (and presenting) the data in a meaningful way to you – hence the rise of the middle man.
With this argument, it makes sense that if you do plan to create a Bot you take a holistic view on what the user is trying to achieve i.e. discover, plan, book new holiday (flights, accommodation, insurance, restaurant and activity recommendations), finance management and advice, etc (as opposed to offering an isolated services around your own products).
It would also be valuable exposing your data in an efficient and machine friendly format to be consumed by similar Bots, which brings me (in a round about way) to another trend I’m excited about, Natural Language Generation, a pipeline that converts data into (as the name suggests) natural language, but more on this in a future post.