A Slack microsurvey bot

In our last episode, we discussed why we were seeking a microsurvey tool (to metricize our perception of velocity), and we evaluated the existing options in the market. We landed on the mundane approach of manually sending out the survey via a Google Form every week.

Well, after a few weeks of doing that, we were exhausted by the twelve clicks it required. Too inefficient! Further, our participants needed three or four clicks to respond, and had to leave their email client for the single-question survey. Oh, the humanity! Our response rate reflected the extreme conditions we were inflicting on our team.

Clearly, this wouldn’t work for long. We needed to turn to science and technology to overcome these obstacles.


Enter: Slack

Well, not “enter”. We’ve been using Slack for over a year. We have channels for all types of interests. #engineering for everyone’s benefit. #backend, #mobile, #web, #qa, #devops for when you want a (slightly) more nuanced convo. #geekbot to get our daily standup status (three cheers for our developer friends in Cyprus!). #animal-gifs and #ship-it hit the extrema of work relevance.

So, why not build a microsurvey Slackbot? Luckily our friends over at Howdy released botkit on github. This means that the dev time for a Slackbot is now on the order of a half-hour or so. Sweet!


Interrogation via Slack

We named our microsurvey bot after the IT-O interrogation droid in Star Wars. Itobot is a couple hundred lines of JS code, which handles the management of quick surveys. Customize a survey in a JSON file, and then send it out with a one-line slack command in your itobot private channel.

Interrogation via Slack

Itobot uses Heroku for hosting, and easily connects to any Slackbot team. We invested some more time in making it store data to Redis, rather than hold it in memory, since the free Heroku account seemed to kill it off at random.

Plenty of room for growth with this code — feel free to try it out, and we would love any suggestions and improvements!

Itobot on Github