According to the mighty book of knowledge (Wikipedia), fun is:
… the enjoyment of pleasure, particularly in leisure activities. Fun is an experience—short-term, often unexpected, informal, not cerebral and generally purposeless.
Here at Think Brownstone, we love to have fun. Fun is a big part of our culture, and it plays a role in forming the attitudes we bring to the studio every day. Just look at a small slice of the record we’ve collected over the years.
It’s also no surprise that having fun at work can actually increase productivity. Some really smart people have researched and reported these findings (check out The Benefits of Fun in the Workplace).
As a developer, I have occasionally felt overwhelmed with a task at hand. When unsure about the best way to approach a problem, my mind tends to wander. Thinkbot provides my brain a walk alone in the woods.
Thinkbot appears as a user in our Slack community and can respond to specific keywords and commands. When we bring Thinkbot into a channel or conversation, fun is just around the corner.
After asking Thinkbot to produce one or two animal gifs, I’m back on the prowl for a fix to the problem at hand. Sometimes a short walk among the trees and leaves gives me an answer faster than if I’d stared at the code for another hour.
The same goes for a team burning midnight oil to get a deliverable done for a client. Thinkbot steps in as a kind of omnipotent (OK, anything but omnipotent) being that allows the group to have fun in the darkest of hours. Morale is instantly increased. Everyone can relax and know that at the end of the day, we’re all in this together.
Back in my first few weeks of joining the Think Brownstone team, Slack was being introduced as a new communication tool. Reflecting on the wonderful fun I had with some friends and another chatbot, I knew Think Brownstone would appreciate something similar to increase Slack fun for our team as well. Chatbots make everything fun. So does automation.
I wanted to build something entertaining, useful, and easy to manage—and as with most development tasks, a community had already been actively developing a solution for this very challenge.
Hubot is a chatbot created by the fine folks at Github. It can be used to do all sorts of neat things in a company’s chat service. Originally created for Campfire (I think?), Hubot has a load of adapters for other chat services.
You can read more in the links above, but the basic idea is that Hubot listens to your chat rooms and channels, and when you either call it out directly, or type something that matches a pattern of sorts, Hubot responds accordingly.
Using this idea, we’ve employed a number of scripts—both custom and open source—to keep things fun here at Think Brownstone. Here’s a sampling of some of our favorites:
GIFS: In any channel Thinkbot has been invited to, we can ask “thinkbot animate me […],” and Thinkbot will retrieve a random gif on our theme of choice.
PLUS PLUS: We can give each other points by using a teammate’s name and “++” when they introduce something fun, make us laugh, or are just plain awesome.
And when someone has done something terrible, we can command Thinkbot to take away some of their points using their name and “- -” (all in the name of fun, of course).
Any time we want to check in on our progress, we can pull up a list of teammates who have earned the most (and least) points to date. This list usually stirs up some good-natured competition. In order to keep things interesting, we have programmed Thinkbot to reset our points every month.
ANIMAL ME: We can command “thinkbot animal me” to see a fun, animated animal gif.
CAN I USE: Outside of the fun stuff, Thinkbot can be useful to us as well. For example, we developers often need to know what browsers support the latest CSS features. Thinkbot can reach out and tell us this information right away.
JIRA LOOKUP: We’ve also hooked Jira, our task/bug tracking software, into Slack via Thinkbot.
These commands only scratch the surface of what a team can do with Hubot. Check out this list of scripts for more ideas.
Thinkbot is currently running on a Raspberry Pi in our Philadelphia studio. We originally deployed it on Heroku, but recent changes in Heroku’s pricing model convinced us to explore an in-house solution.
What types of commands would you do with Thinkbot? Suggestions are welcome.