Yeah, I know ... who uses IRC? A year+ ago one of our staff talked us into experimentally running an internal IRC server. The coders were more than happy to leave an IRC client running the background vs an instant messenger and overnight it assumed a status somewhere between phone/messengers and meetings/email. It was trivial to integrate into our production processes and our servers, and now we have a live and interactive chat/status/operations system all rolled into one. The big bonus was the discovery of the logging proxies which let you "catch up" on any messages you missed while logged out.
I've since been surprised to find how many organizations do run IRC - perhaps because they don't like their staff using public messenger services for internal conversations.
Its a pretty simple TCP based protocol that is fairly trivial to implement - and there are several good libraries out there for it. You probably only need "Send IRC Message" and "Send IRC Notice" with a specification for nick/channel in each case. Although it would also be useful if it could be made to join an IRC channel at the start of the run for long builds/processes: Several of our build and automation processes do this and it provides a great way for anyone who cares to see what processes are currently running - this has helped us diagnose a number of resource conflicts in the past.
Thanks for the interesting suggestion, I’ll add it to the to-do list for a future version. I knew OSS development uses IRC a lot, but I don’t think we were aware it was used much by in-house teams as well.
For what it’s worth: Our product is an (aging, 9yo) MMO. All of our management interfaces used to be web and command line based. About a year ago we re-hired a former employee who had been working for a couple of other companies and had encountered IRC in use at a couple of them.
We run an IRC server down at our server farm, to which all of the game and management servers talk. This server relays to an IRC server here in our office which in turn sits behind a “dircproxy” server. Think “screen for IRC”; I can go home and log into my existing IRC session if a pager goes off and see all the recent comms from other team members, servers, management software etc.
Rather than a bot, we wrote some /command plugins to the server-farm IRC server that do things like bring a game cluster down or up, etc.
It was trivial to fit all of our Linux based management applications with calls to notify the IRC servers as they operate. And our server library now includes an IRC thread using http://libircclient.sourceforge.net/ and joins all of our server processes to #servers on startup to provide an out-of-the-box gratis monitoring system.
We spread things across a few channels: #servers to which every server writes critical stuff; #cluster-servers to which they write more detailed info; #ops channel on which servers post various operations notices/alerts; regular people channels and … then there are channels which either map directly or have the ability to map to in-game communications channels.
I can even use IRC’s “DCC” system to download logs/data dumps from and write/upload Lua scripts to our servers.
Using one single interface I can talk to my colleagues in a mode that can be as live as an IM/phone call when people are present, or it can be relaxed like email if people are busy and not currently checking IRC. I can also see live reporting from the servers and operations systems and even interact with them and the customers using the product.
One of the most subtle but elegant features is that you can either send messages directly to a server for a one-on-one dialog or you can do it on an open channel where the server will respond in kind. So two or more team members can literally work on the same page - perhaps not as elegantly as some of the modern collaboration tools but - for free it’s pretty darn good
That sounds pretty cool! I noticed in my previous job that people tended to use Skype chat for internal communications, both to people far away and in the same building. It’s convenient being able to “drag and drop” text to another person, even if they’re in the same room. But the downside with these one-to-one chats is that if you’re asking a general question you often end up disturbing several people to ask them, whereas asking the question once on IRC would probably work better and be less intrusive.
I’ve never used it, but it looks pretty neat for this kind of collaboration (more expensive than IRC, though, and less chance of writing a server bot.)
Posted By Steve Bennett on 14 Jan 2008 10:56 PM But the downside with these one-to-one chats is that if you're asking a general question you often end up disturbing several people to ask them, whereas asking the question once on IRC would probably work better and be less intrusive.
Steve
That's the nail on the head; in my particular role, which is maybe a little off the beaten path, all the automatons running the servers and databases reporting in makes it possible for anyone to scroll back and see what me and my minions are up to ;)
In addition to setting up an archival mailing list I envisage having source control notices (checkins, etc) and final builder notices go to a couple of IRC channels - one for major events and one for all the trivial notices too - since its on an internal lan it doesn't hurt to have a second channel on another tab with all the minutae.