IRC and Distributed Teams 

The one thing in this field could use more of (or any field for that matter) is better communication. We have a distributed team where almost 50% of the core engineers are working out of their homes across the country. Inevitably, being remote can always pose obstacles. The remoters are always looking for better ways to connect with the main office.

Our team definitely has tried all sorts of tools and tactics to help facilitate better communication. All have helped in some fashion:

  • Human-to-Human – All local engineers sit in the same large room, along with our Product Manager
  • Email – We all know that this has its purpose, but ultimately is becoming the snail mail form of communication
  • VOIP Phone – All have a Cisco phone where everyone is only an extension away
  • IM – Always a great choice where communication needs are non-vocal
  • IM & Video- Skype works great for this as having the ability to see the person you’re talking to makes all the difference OK the world

However, even with everything listed above something seemed to be missing. How do you rope in the remoters to conversations that happen on the fly? We’ve tried a speaker phone where everyone is dialed into the number but there is just way to much chatter and background noise. Nothing was going to replace having them here in the office, but we were determined to try and find something. We needed a better way!

Enter IRC:

About 6 months ago I started doing some side contributions to the open source bug tracking solution, Bugzilla. Here is a system that is developed by true remoters… contributors from areas all around the world. Talk about communication nightmares! How the heck do they make this happen?

Within minutes of reading their developer guide, I realized that that use IRC heavily.  Their developer wiki indicates that its prefered over any other form of communication. So I opened up my client and was “in the mix” with the developers on Bugzilla. I quickly realized that this was an excellent form of communication for distributed teams.

For those that are unfamiliar with IRC, it has a bit of history. It is still heavily used around the globe as it serves as a very effective way to have group discussions. The best way to think of it is like a chat room with a geek polish (or not-so-much-polish) to it. When I realized how effective it was working for the Bugzilla team, I decided to try and get a similar environment going over in our office.

Usage:

For our team, since half of us are in the same room, and the other half in other geolocations, we use this to complement our existing forms of communication. It would be crazy if I had to ask Joe, who is sitting right next to me, a question and I did so in IRC. Just ask him! What I may end up doing is posting the answer to my question in IRC for everyone to see if it relates. Otherwise, we try and keep conversations that relate to the team in the IRC, even if it means that Joe is sitting right next to me.

Observed Benefits:

This is a touchy one as the benefits completely depend the experiences. For us, our experience has been good and therefore, the benefits are great. Put it this way, it only helped communication get better and now occurs at a whole other level. The remoters feel more connected to the team as they have a complete running log of all conversations, and therefore can pipe in at anytime to give input or ask questions.

The Nitty Gritty Details:

While there are many public IRC servers out there that could potentially host our channel we wanted to keep things inside our network for security reasons. Many server software exists out there so this I will leave up to the reader their own research. Here is what we ended up using:

  • Server: UnlrealIRCd (required)
  • IRC Services: Anope IRC Services (optional, but nice to have to increase your IRC geek-ness level)
  • IRC Bot(s): Supybot (optional, but provides for some nice hooks/bells/whistles that are just plain cool)
  • Clients: This one we left up to the developers as there are many out there to choose from
Platform Concerns:

IRC servers thrive mainly on Linux/Unix systems, but we are a Windows shop and the above configuration worked great as all had Windows options available. However, if you have any questions while setting things up, please feel free to contact me anytime and I can try to be of assistance.

-

If you found this post helpful in any way, it would be super cool if you subscribed to future posts via RSS!