Having a fully remote workforce makes finding tools to facilitate transparent, real-time communication very important. We use Slack to chat because it’s fun, easy to use, and accessible on smartphones, laptops, tablets—anywhere you need it. While Slack is awesome on its own, our customized chatbot has taken our Slack use to the next level.
Botzo is a Hubot-based chatbot that helps us get things done and contributes to our overall productivity (and sanity!). It lets us accomplish common dev/engineering tasks by typing a simple command into Slack. It runs on an AWS EC2 instance and is developed and tested in Docker.
We have written quite a few custom scripts to expand Botzo’s ability to help us be more productive. Here are some examples of the things we have set up our little buddy to do:
- Deploy software from any Github repo branch to any environment
- Create new Github repos and assign permissions for developers to those repos
- Shorten and expand URLs
- Restart servers in our infrastructure
- Create new server images
- Create new infrastructure in AWS via Jenkins and Terraform
- Trigger a host of Jenkins jobs for doing all sorts of things
- Supercharge our Chef and Berkshelf workflows
- Respond to PagerDuty events
…And all the obligatory functions like checking the weather and showing images of squirrels. 🙂
How Botzo Empowers Our Dev/Engineering Team
At other companies, many of the things on the list of Botzo’s functions are relegated to ops folks, like me. By integrating those functions into Botzo, we have empowered our ops team, developers, customer support—everyone, really!—to go and do what they need to do without being blocked by someone else along the way. Plus, anyone in the Slack channel can see when others deploy new code changes or set up a new server; he or she doesn’t have to ask if it is done. If there are any questions, the chat log is a history of what’s been done and by whom, as well as when.
One of the cornerstones of our company culture is empowerment. We take our culture of empowerment seriously and do everything we can to promote it internally. In this way, Botzo is a big part of letting each member of our dev/engineering team take ownership of his or her work.
Employees can deploy software, create and manipulate infrastructure, and perform a host of other functions all through Slack and ChatOps. Developers don’t need to contact ops to get software out to our customers, or to create new Github repos, or to test new features; they can do it all themselves right in Slack. Botzo stands at the ready 24/7 to do their bidding.