Chatbot UIs have been gaining a foothold in an increasing number of niches. The one that is most relevant to my work as a developer is the area of SysOps. Things like kicking off builds, deployments and miscellaneous other infrastructure-related tasks are increasingly delegated to chatbots. In a distant time, long before AI was being hyped to the mainstream, when development teams were using Campfire or Hipchat if they were using anything at all for internal team chat, Github created what I consider the granddaddy of today’s chat bots with their internal tool Hubot (now long since open-sourced).
Instead of going to a interface – whether bespoke, PaaS-furnished (like Heroku’s “git push to deploy”), or living in a dedicated web-based utility like Cloud66 or DeployBot – teams issue an incantation to a bot that lingers in one or all of their chat channels to perform certain ops and deployment-related tasks.
Whereas previously I may have had a self-disclosing, highly-discoverable and information rich interface like this:
…if I move my task over to a chatbot, my interface is more likely to look like the following:
I may get something like a running deploy log or link out to a CI server from the bot as it runs the task.
What I’ve lost over more historically favored web-based tools, though, is tremendous. Most critical to me: discoverability and auditability.
Chatbots’ UI discoverability is terrible. I very often find myself having to reference either earlier invocations (in chat history) or a bot’s source code itself to remind myself how to perform certain (even basic and critical, sometimes) operations.
Just as bad as discoverability tends to be auditability. With dedicated, purpose-built browser-based deployment utilities like those referenced earlier, I generally have extremely well-organized logging of activity and operations. This tends to go out the window with chatbot UIs. Sure the bot can log its activity to a dedicated channel, but then I’m stuck with the skin, searchability, and generally orthogonal interactions (in that they were built primarily for chat, not the actual domain of our tool) of my chat client.
Ultimately, chatbot-based ops tools, in my experience, are lazy and regressive when compared to well-integrated, dedicated UIs. I do think chatbots have a place in the domain, but to me this place is as a far-ancillary convenience interface. Chatbot UIs should be an accompaniment to richer, dedicated external UIs, not be the entire UI itself.