They’re calling 2016 ‘the year of the chatbot’. From diverse sectors such as dining, travel and retail, chatbots are increasingly being used for a variety of different purposes. This is part of a broad shift away from point-and-click based apps to chat-based user interfaces. Software development is no exception to this trend - GitHub is credited with coining the term ‘chatops’ back in 2013 when it created Hubot, its open source chatbot to help with devops practices.
Initially designed as an integration with messaging apps such as Campfire, Hubot has since been starred over 11,000 times on GitHub, and a variety of companies, from Box to Lyft have begun embedding them in their own development workflows.
Fast forward to 2016 and Slack has spearheaded the next generation of messenger apps. In both the developer and consumer world, chat based platforms will integrate with more and more apps offering increased functionality.
Slack’s success has been stratospheric. Back in 2014, influential VC Marc Andreessen said: “I have never seen [a] viral enterprise app take off like this before” and since then, the platform has accumulated over four million active daily users and an incredibly diverse array of paying enterprise customers, from tech startups to large scale enterprise.
Some of the most vocal adopters have been developers, who are increasingly using Slack to collaborate. We think chatops represents the future of collaboration in developer teams. Our team uses Slack, and we’ve even developed our own chatbot to help developers move faster. But before we go into that it’s worth looking at what chatops are and where we think they’re going.
Chat, code, send
The easiest way to understand chatops is as a marriage between established devops practices and workplace instant messaging platforms. In hindsight this combination seems obvious: devops is a way of working, intended to enhance communication, transparency and cooperation between highly agile development and IT teams, and these teams are more than likely to be using instant messaging platforms such as Slack vs HipChat, which come with first or third party native chatbots already.
Many teams will have connected their chat application to their build systems, so that they get notifications in Slack when they’ve completed a build or deploy. However, these notifications are less useful than they could be. Developers still have to context switch out of Slack and complete the task, which slows them down.
Chatops aims to solve this: the idea is to allow a developer to do all his/her work in either the command line or Slack, thus reducing friction and increasing development speed.
The first step on the road to chatops involves creating closer integrations between your chat applications, development environment and infrastructure platforms like AWS or Kubernetes. This means customising the bot to fit your specific needs. You need to determine what you want your chatbot to do and create rules that allow it to seamlessly fit into your existing infrastructure.
ChatOps at Wercker
The number of chatbots available to developers is growing very quickly. Slack kicked off the trend by including its own Slackbot in its product, and since then alternative options such as Lita, Err, StackStorm, Deploy Bot and Blockspring have popped up. Product Hunt has even compiled a list of Slack chatbots which may be useful.
We developed our Slackbot, Walterbot, because we believe that developer tools should get out of the way. At Wercker our Slack integration is designed to help developers directly interact with the notifications that they care about. The difference here than say, just having an integration connected to a Slack room, is that you can be more selective with the builds that you follow and that the immediacy required to make a deploy work is unhindered by chat room noise. After a certain point, developers only want to hear about their specific builds which they are currently working on, not every build in a project. The opposite can hold true for deploys; you’ll likely want to know who deployed what to where and to which environment. The point is that these notifications can now be fine-tuned to the developer's needs.
Right now the functionality is limited to getting the latest pass/fail results of a pipeline. But we’re working towards enabling our customers to interact with that notification;for example if they want to start a deploy or merge then they can do so by communicating with the bot directly via the Slack interface. There is no need to waste time context switching between apps and that allows developers to move faster.
As chatbots become more and more critical to core components of product development, their level of access and overall security will become a concern. There will be an increased emphasis on the level of authorisation that a chatbot has and the underlying security protocols that have been built in.
As Hubot was the first chatbot to be released it was not built with many of the modern security and compliance factors that we see with newer bots. The features are there, but they have been bolted on post factum rather than being built in from the outset. Some of the more recent bots like Erbot and Cog are much more aware of the security aspect, but you can also step up security features on Hubot by using middleware.
Middleware allows controls to far more granular functions, such as role, room and environment. It also provides a clear audit log of logging requests and whether or not the middleware allowed the command to go through. In other words, it ensures that the chatbot only has access to the areas in which it is needed and can inform you of any suspicious behaviour.
Bots have become commonplace in 2016, and we can expect to see an even wider rollout in 2017 to a consumer audience as well as advancements in chatops technology that will allow developers to be even more agile in their working practices; steps are already being taken with IBM Watson’s recent announcement that they’ll be working towards bringing ‘cognitive assistant’ capabilities to Slack.
As developer teams strive to work faster and become more agile in their operations, chatops, and the ability to deploy code and communicate with your team through one, integrated platform will be key to the future of agile working.
Micha “Mies” Hernandez van Leuffen, CEO, Wercker
Image source: Shutterstock/ProStockStudio