It's been less than eight hours of using Hipchat (we are trying Slack as well). It's been very cool to say the least. And really, I think our entire team is scratching our heads as to why we hadn't signed up for a trial sooner. But before discussing how a chat program is working for us and how we (well I) use it, I'll discuss why we really needed a dedicated chat software.

Our Old Process

Keen Technology is a team of seven full-time developers, some part-time/freelance developers and three project managers. It's a good size for a start up and grew quickly (I was the last full time hire in October 2013 and the company started in early 2013). Everyone is remote and working from home. To mitigate this, we would have daily stand up meetings each morning in Google Hangouts to help keep the team together. This worked for a while, however as we started working on different projects for nearly each developer, it became a bit awkward to have to jump over to Google Hangouts, mute whatever you are listening to, open your mic, maybe turn on your webcam, and do all of this when you had to talk to someone else on the team. The other alternative was if you didn't see someone in the hangout, you would randomly call, text, email, or use that person's IM service of choice (which was different for nearly everyone on the team).

The Problem

Since the team was so spread out and opinionated (and often changing in habits), it was hard to tell what messages got through. When you want a project pulled, who do you CC? Should you respond to the last email thread you had with that person? Does that developer check Skype, IRC, their company Google Chat, their personal Google Chat, or their G+ Chat (and yes it is crazy that G+ has a separate chat stream from the one found in Gmail and starts conversations arbitrarily between the two when using Jabber). Then it became a question of keeping up with what was said or done.

Also missing from the equation was general conversation of the team. Where could we discuss things that brought the team together. Where could we bookmark cool things we found, technologies to try out. Better yet, where could we post animated GIFs without them just hiding in someone's mailbox. Ok, so the GIFs goes a bit far, but there is a lot to be said about being able to converse and become a cohesive team by talking about non-work things and it was something that was missed from our daily routine as a company.

Enter Hipchat

This morning, one of our team members led the charge and finally opened a trial for Hipchat and signed up the team. After a slow adoption process of about an hour or two, we had the entire team in the program and talking together. Most of the conversation was filled with playing around with the emoticons (and building some custom emoticons based on inside jokes), testing features like embedding youtube videos, links, code snippets and more: did I mention we played around with the emoticons. The main chat room was filled with random thoughts, cool ideas, and general comradery. We even started side channels for talking about gaming for the people that couldn't be bothered about the release of a $30 demo of Metal Gear Solid 5 (I hope the team does something similar if they want to talk about sportsing).

Some of the real power as far as I am concerned was the ability to persist conversations about individual projects. As a contract development firm, we are working on anywhere from six to ten projects or more at one time. Some of these projects go dormant and keeping up with the internal (not to mention client) email exchanges can be a real headache. So today, I had my first experience of using Hipchat as a way to share a record of our conversations on a project. This is a bit of how my meeting with our sysadmin went down.

We started the day in a 1:1 chat to figure out what was the best time for each of us to discuss server requirements for one of our clients. From there, we set a time and I created an event in my Google Calendar with an video call (still the most reliable way to make sure everyone can access a Hangout). In video chat we updated each other on the project status and figured out our next steps. From there, I needed some FTP info and asked the sysadmin to put it in the project room in Hipchat. Later in the conversation, I needed some shell commands, they also went into Hipchat for the project.

These types of things usually would have been lost (the FTP info already had been lost) in our various email archives. Really there is only so much folder structures can do, and when it comes time to bring on another developer to the project, you have to forward TONS of emails and still things slip through the cracks. So, that is how Hipchat (or any unified chat software with good desktop clients, multiple rooms, 1:1 chat, and persistence) is helping us so far.

Tips And Tricks

Use the /me to higlight meeting notes.

When in the conversation with our sysadmin, I wanted an awesome way to fence off and label what a string of text meant. Enter the /me tag. Traditionally in Hipchat and IRC /me is an "emote", basically it will create a differently formated string when compared to the chat and start it with your user name. Well, this different formating makes it great for fencing off topics in notes, highlighting cool discoveries, and more. So to label off the FTP credentials, I entered /me ^^^ thinks that was some good ftp info. When I went in to start a project update meeting I used /me starts March 18 meeting and ended it with /me ends March 18 meeting.

Emoticons for taking notes

True, much of today, was squandered playing with the different emoticons provided by Hipchat. But, in playing around with the emoticons, I found them to be crazy useful for taking notes with our project lead. It started when in our meeting he discussed a bug that was occurring. Usually, we'd open a story in pivotal, track it, assign it, estimate it, and then complete it as normal. But, I didn't have pivotal tracker and really wanted to see what Hipchat could do. So, I used the (failed) emoticon and had a red exclamation point to come back to when reviewing the meeting notes and the meeting could go on.

Then there was a point where a story was greenlit by a client so (continue) seemed quite fitting. Need to schedule a meeting? Try (coffee). Need to have a domain discussion (internally or with the client)? (shrug) works pretty well.

On a slightly unrelated note, during the meeting, we were talking about confirmation emails which were implemented but were waiting on configuration from our sysadmin. I was able to ping him in the project chat, continue with the meeting and a few seconds later, we got confirmation that he was looking to get things working.

What I Still Feel Is Missing

The only thing that I really would like to see is a good integration with a face to face conversation tool. I know that Hipchat is trying to develop its own solution for this, but really Hangouts works relatively well (when the authentication servers aren't down like yesterday). Slack does have some hangout integration, but it seems a bit off. To remedy this, once we get our company Hubot up and working with Hipchat, its likely that we will install the Google Hangouts plugin so that in any room we could say @hubot start a hangout and have a google hangout link sent to the chat (it may also send calendar invites?).