Internet Relay Chat (IRC) has been around for a very long time (1988) and Instant Messaging (IM) for even longer – although IM did not become really popular until the mid 90’s with the emergence of GUI clients. There are many similarities between the two systems but for this article I am concentrating on the differences, specifically around their use as a team communication medium.
IM is optimised for point to point communication between two people. There are options for group communication but this is more of an exception where one person takes on the role of organiser and brings other people into the conversation. IRC on the other hand uses the channel concept, where a channel is synonymous with a topic of conversation. The channel exists independent of the participants in the conversation. Neither system offers a view of the entire conversation, although a lot of clients log conversations.
For teams working on a software project effective communication is a key ingredient for success. Ideally every member of the team would be as close to one another as possible to foster a sense of team and effect the least expensive way of communicating - face to face speech.
For teams that are more disparate the cost and effort in maintaining a effective communications is much higher. The separation of team members need not be that great to effectively sever the communication paths available to a co-located team. In these instances electronic communication methods can help.
When working with a distributed team though Instant Messaging although useful is not as useful as IRC - the workhorse of open source development teams. Where IM provides efficient point to point communication between individuals, IRC helps create a community and allows topics to be discussed in an open forum. IM suffers from the same problem as e-mail – the person you are trying to talk to has to be there to respond to the message. IRC on the other hand tends to be topic based. You may know who is most likely to respond to a question or comment but it could be that someone else has more recent or better information to share. When something is unknown or opinion is being sought of the group IRC wins again.
Most organisations don’t want their project information leaking outside the organisation but since IRC has been around the Internet for a very long time there are plenty of open source options to choose from when setting up a server. It is often common to have automated (ro)bots listening to the IRC chatter, collecting conversation and contributing things like build status or even version control commits.
Communicating via IRC has a very different feel to IM. Because the information shared is generally available to everyone on the team (and perhaps beyond) the conversations tend to be inclusive rather than exclusive. Questions are directed at the how/how/where/when rather than the who.
One problem is that if you cannot be connected to the stream of information flowing from IRC then it is sometimes difficult to understand what is happening when you join part way through a team conversation. Bots can help capture the stream and persist it for review and possible search for those times when you know a topic has been discussed in the past but you can’t remember when or what the conclusions were.
If you have not tried IRC for distributed team communication and are having long email converstations, give IRC a go.