Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Our Developers voted: Skype 0, HipChat 14

16 Jan 2015 1  
Using HipChat to control CodeProject::Workspace deployments

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

Introduction

In this article, I'm going to describe how our team switched from Skype to HipChat and why it was a big thing for us.

Background

HipChat is a full-fledged team chat tool that works great for developers. It’s free to use, but they offer extra functionality for paid users at $2/user per month (more storage for messages and attachments, video chat, screensharing, etc.).

The Story

Some time ago I was leading a small, but growing development team where Skype was used heavily for team communication. It wasn't bad, but over time the list of things that annoyed me got longer and longer. Group conversations seemed to be an afterthought rather than a core piece of functionality.

I wanted to try out some alternatives so I signed up for a free trial of HipChat and asked my team to test it. My intention was to test the tool for a week or two and then decide to stay with HipChat or try something else. But after just one day of using HipChat the team’s response was overwhelming: 14 votes for staying with HipChat (including myself), 0 votes for Skype.

Image 1

Fig. 1: Example of full UI

It started with little things. My team was using multiple operating systems (including mobile) and Skype was giving us a lot of headaches - notifications were not showing on Linux, etc. HipChat proved to be much more reliable and useful - and one major thing we learned to appreciate later was that messages are rich-text, not just plain (more on that below). If you’re travelling and can only access email - HipChat has you covered. If the message cannot be delivered to an online client, HipChat will also send you an email with that message - I've found it extremely useful.

From day one we quickly realized there were killer features in HipChat that Skype was lacking. HipChat allows you to copy and paste an image and will display the image directly into the conversation. It seems like a very small thing, but it’s an extremely useful feature. I still can't figure out why Skype hasn’t added this feature. With Skype, when you want to show a picture to a friend you need to select the file from your local machine, upload it, the other side needs to accept it, locate it on their own machine, and open in an external program - that's a lot of clicks to do something simple like sharing a photo. Unlike HipChat, files received over Skype are stored on that machine & won’t be on your new machine if you switch.

Thanks to these features we were ready to switch to HipChat from day one. Later on, we found a much more profound feature - the HipChat API. Their API allows you to post a message to a person or group conversation (room) from an external program. This might not seem impressive at first, but it completely improved our team’s workflow.

We started with setting up Hubot and hooking it up to HipChat. Hubot is a small robot who can execute various commands when you talk to it (or react to normal discussions between humans). It comes with a bunch of predefined functionality and allows you to add your own scripts to it. In the beginning, we just played with its built-in functionality - sending pug bombs to other team members, getting random pictures with added mustaches and displaying google maps (inside the conversation window). Then we decided to get serious and hook up our devops tools to HipChat. We installed ErrBit so that when a server error occurs on any application we’ve been developing, an error report is sent to ErrBit (with stack trace, request metainfo, etc.) which then sends a notification to the relevant room in HipChat (so rich text formatting on HipChat was extremely useful here). Everyone online is made aware of the problem in real time, even if the relevant developer wasn’t online at the moment.

Image 2

Fig. 2: Example of Errbit messages inside a normal conversation

Since the ErrBit-HipChat integration worked well for us, we hooked up other services like Zabbix or Monit. However, the most life-changing integration was adding our deployment scripts to Hubot. We've been using Rails deployments with Capistrano, so a developer had to set up his own machine and install all the dependent tools on it, then with command like cap deploy production he could do the actual deployment. It worked fine, and moving that bit to Hubot didn't seem huge at first. Yet over time the whole team started to love it. For example, Hubot could ensure that only one deployment was happening at any given moment. If something went wrong and a rollback had to be done, any team member (even project managers) could trigger a rollback, even without having their machine setup for development. I was switching between a few machines at the time and it was extremely convenient to be sure that my deployment environment was set up correctly (since it was Hubot's environment). Most importantly, the whole team could see that the deployment was in progress. Thanks to the integration it became simple to verify if there was anything deployed around/before/after that time. There are many times that I’ve really appreciated having easily accessible deployment logs. And remember that ErrBit integration?

When somebody pushes some invalid code (yeah, it happens, what a shocker, typically we've seen this on HipChat: hubot cap deploy app_name production, and a few minutes later Hubot says that the deployment is finished. Seconds later, the HipChat room is filled with bloody red messages from ErrBit, so the developer quickly tells Hubot to rollback and can proceed to investigate what the heck happened.

Image 3

Fig. 3: Example of deployment process done by Hubot to 3 servers

As you can see, switching from Skype to HipChat worked extremely well for us. I give HipChat an A+ and recommend anyone on Skype to make the switch. With a few small (but important) features like inline picture display, and bigger ones like API access or file storage (so it is possible to send Word document to the room and have everyone download or fetch from HipChat at anytime), HipChat proved to be invaluable for our team. I hope that this article will allow you to boost your team's productivity with HipChat as well.

I hope that this article will allow you to boost your team's productivity with HipChat as well. Learn more about it: www.hipchat.com

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here