Team chat tools
Depending on how your team is structured and your way of working within the team chat tools can help increase productivity, keep the whole team aligned on different matters and discuss various topic without the need of proper meetings for this. The con side is that over-abusing them will just ruin the point just mentioned. At beyounic we did run our backchannel for about an year on hipchat (www.hipchat.com) and recently moved to campfire (www.campfirenow.com), why?
Hipchat is a pretty good tool, it has strong notification system that means that if you are @mentioned in the chat while you where offline you will get an email with the message and a link to the history of that discussion. Altough this is a powerful feature it is sometime a little stressy and is either on or off (btw not all the mention need such attention). The second problem we had with hipchat was that we couldn’t invite (even as guest) in our rooms someone that was already using hipchat in another organization (unless he register with another email of course). Is not something that will happen often but when you need it, it sucks. Client side Hipchat offer his own desktop client (together with iphone app and web app). The client is not bad. Hipchat also allow you to set your status like available, away, and do not disturb.
Until I discovered that campfire, form 37signals, has many 3rd part nice client applications to access it I never took it as an option, as using an only web access chat is not what i was looking for. Campfire has much less features but the more I use it the more it make sense to me why this features are not there. Mainly you don’t have notification on mentions like hipchat does, and you cannot set your status: you either inside a room or you are not, as simple as that. I think it all come down to the philosophy behind it having strong notification is like having your coworkers always taping on your shoulder to show or ask something resulting in you getting more distracted. I think urgent mention are important but this could be easily solved using hubot and writing some short scripts, maybe relying on the twilio apis to send urgent notification even via sms, but we will come back to this later. The lack of features forced us to restructure our rooms a bit more efficiently. We use a watercooler room for the easy going chat, and we have a room specific for single topic, like dev/code only for a single product. we won’t discuss features in those rooms, just code.
After a week running on campfire we are pretty happy, it’s overall a bit quieter then compared to when we runned on hipchat and a little less intrusive. Most of uf choosed flint as the preferred client (http://giantcomet.com/flint). Flint is a pretty slick thin client that also comes with nice personal keyword aler, meaning that you can set up special keyword to highlight message in the chat or trigger crawl notification. Flint leaves out history and shared files, but if you looking for such on your client you can check out propane (http://propaneapp.com/), for a whole list of extra clients and apps using the campfire apis check this out: http://campfirenow.com/extras.
In certain case email notication could be really useful, for us this was the case especially within our support room where referring tickets to someone not in the room was needed. This was pretty easy to achieve by creating an hubot script that recreate the hipchat notifications system via email with just with few lines of code. As I didn’t find any script to address this issue I just wrote one my self, you can get it here if you need it:
For who doesn’t know what hubot is: Hubot is a bot originally created by github to run on their own internal campfire rooms (although you now find adapters for other system like hipchat as well). It’s built on node.js and scripts are written using coffeescript. Among a lot of useless scripts you find out there (https://github.com/github/hubot-scripts/tree/master/src/scripts), I’ll like to mention the twilio adapter (https://github.com/github/hubot/wiki/Adapter:-Twilio) that can be really awesome if you want to send instant sms to someone in the team (or all of them) for urgent issues, or even accept commands inward from sms you send in. Another awesome thing that you can use hubot is for “continuos integration” especially if you pair it with capistrano (a nice article can be found here on this matter: http://tomb.io/posts/hubot-ci-and-deploying/). Deploying via hubot directly via the team chat room, will allow designers and people who don’t manage server/infrastructure to deploy their commits on the fly… continuos integration ftw.