Howdy there! You and I have talked before about how we build Slack bots at SparkPost, but I didn’t say much about how we use them. We use bots at SparkPost to do all sorts of things. We’ve learned a lot and I thought now would be a good time to share some of that with you. I love bots, you love bots, so let’s turn the lights down, light a few candles and have a nice glass of your favorite beverage over some bot talk.
How We’re Using Slack Bots to Maximize Productivity
Like I said, we use Slack bots for a lot of things. We run our standups with bots, we use them to get links to our docs, to post sample data from our endpoints, and to encourage each other. We do internal reporting and monitoring from bots. We track the status of our deploys along with any new PRs and issues on our Github repos all from Slack.
Why do we use bots for all these things? I mean, there are other tools that do almost each one of the things we use bots for. Well, that’s the thing: there’s at least one tool for each of those things. Our Slack bots consolidate everything into one place and one interface.
There are some advantages to using Slack as that central platform for us at SparkPost. First, since we’re a distributed team, Slack has become lingua franca – it’s our primary communication tool – so everyone is comfortable with it. Slack access doesn’t require any special VPN connections (though you should set up two-factor auth for safety). It’s accessible on mobile devices so we can make API calls from just about anywhere. We make our Slack bots easy to use for non-technical people so they don’t have to use developer tools like cURL or Postman.
Basically, since we’re already in Slack on a regular basis, it’s easier and faster to simply perform as many of our everyday tasks from there as possible. Not only does it mean fewer steps to complete something, but we also don’t have to leave the interface where we’re already spending a lot of time. Just repeat this over and over with me:
NEVER LEAVE SLACK. NEVER LEAVE SLACK. NEVERLEAVESLACK. NEVERLEAVESLACK. It’s probably fine.
Botify All the Things!
So how do you choose what to add to your bot? Be on the lookout for things that are inconvenient or painful. Start with the things you do a lot. For example, in our community Slack team we found we spent a lot of time tracking down links to our docs: we’d open a browser, go to the docs page, search for the right resource, copy the link, go back to Slack… It was just awkward. And in that time the conversation would often have moved on. Now we have a single command that will give us a link to the resource our users need when they need it.
Do you have something that only you can do because you’re the only one technical enough? Bam! Slack bot! Or do you want to empower your team to do things on their own? Botify it! Want to let new users know what’s up when they join your Slack team? Bot time! You get the picture. It’s open-ended, the only limits are your creativity and a few pesky natural laws.
How to Succeed at Bots Without Really Trying
Ok, you have this awesome idea for this bot that is going to save you time and frustration and probably the world. You set up a repo and a sweet continuous deployment pipeline for easy deployments. You’ve got 100% test coverage, the build is green. But nobody is using it. Nobody? Seriously? Yep, nobody.
Remember, bots are an interface, just like a web page. And just like any web site they can be hard to use or unintuitive or just plain off-putting. Bots have the extra challenge of being a pure text interface to your code and code is rigid and brittle. But human language is fluid and nuanced and weird. So when you build your bot be creative, funny, and offbeat. Find that unique voice inside of you and channel it into your bot. That helps offset your bot’s rigidity (and even make it endearing!).
Making your bot enjoyable goes a long way to getting users to engage with them. We’ve also found a lot of success by including help text for every command. The skellington library we use for our bots makes help text a first-class citizen and makes it easy to add help messages. The easier and more fun you make the bot to use, the more people will use it!
If you use Slack or some other chat program, bots are a great way to empower your team and make rote tasks easier. Make your bots useful, interesting, and entertaining (in that order) and before you know it your bots will take over the world! Ok, not the world but at least the hearts of your users.
We’d love to hear how you’re using bots! Either post a comment below, or come find us in our Community Slack channel.
April was a great month for Message Systems as the company launched its first ever Message Systems Hackathon!
The Message Systems Hackathon marked the start of a quarterly initiative to allow engineers, project managers and business analysts to team up and let their creative juices flow.
From extending the capabilities of a current product to developing a brand new product, no project was off limits. Winning projects would potentially be considered for inclusion in brand new product launches or updates – a great opportunity for teams to make a meaningful contribution to the company and achieve a memorable career highlight! Teams were encouraged to:
- Write something from scratch
- Build off Message Systems existing code base
- Incorporate open source or trial version of commercial software
- Create a new tool or improve an existing one
- Use a new or familiar programming language
The only caveat was the honor code that teams had to observe, which was that projects had to start from scratch and no pre-coding was allowed!
The day started at 10am, where teams with custom made Hackathon shirts grabbed cups of aromatic coffee and doughnuts to kickstart their day, while Message Systems CEO, George Schlossnagle gave a brief introduction to the Hackathon.
The hard work commenced soon after and continued to the next day, as teams collaborated on their various projects until the hour of judgment…
The panel of judges included CEO George Schlossnagle, Project Manager Laura Rose and General Counsel & VP Joal Barbehenn. Up for grabs? Branded gear for winners and runner ups. The winning team would also get tickets to the Interact user conference in San Diego and be awarded with a mega trophy. All in all it was a pretty tense moment for the teams…
And so without further ado, the big winners of the day were:
First Place: Team Bazinga
Julie Zhao, Senior Software Engineer
Jun Chen, Software Engineer
Prashantkumar Dhotre, Senior Software Engineer
Runner Up: Team Radiate This!
Andrew Winder, Software Engineer
Chris McFadden, Director, Software Development – Applications
Chris Broome, Software Engineer
Runner Up: Team We don’t need no stinkin Java
Damian Danowski, VP Engineering
Jessica Martin, Software Engineer
Karan Singh, Software Engineer
The day concluded with a happy hour, where teams basked in the glory of the successful completion of their projects, and the first ever Message Systems hackathon!
Our talented engineering teams work on the product that drives 20% of the world’s legitimate email. Find out more about why major brands choose to use Momentum software.