Having been remoting for the best part of 5 years I've come to use irc alot as a primary means of communication for work.
Along the way I've learnt a few things that made a difference to how I use irc and allowed me to get the most out of it.
Be on irc if it's a part of the culture
If your role is non-technical it can be easy to not take part in irc e.g. I've heard in the past people dismiss as "just for geeks" :). However, if irc is a big part of how the company communicates, it's important for everyone to get involved. Especially if remoties form any part of the work force they'll appreciate you being there.
irc is easy to learn and people will generally be very happy to show new people the ropes.
Here's a great wiki page with a ton of information on how to get started with irc.
Stay connected whilst offline
If you're working with people that span timezones chances are there are going to be times when you need to talk to them and they're not awake and vice versa.
When you shutdown or put your computer to sleep you're not available on irc the moment your typical irc client disconnects from the server.
This means that if someone wants to tell you something they've got to wait till you're online or drop you an email.
An irc bouncer or server-based client allows you to stay connected permanently regardless of when you are offline.
Typically this means that when you reconnect the next day the backlog from when you were offline is replayed, thus any questions or messages people are sending you you'll see.
If you're not a developer and you don't want to run your own bouncer then you could always look at a hosted solution like irccloud which is a web client it costs a minimal amount per-month and you might even find your company can cover the cost.
If you're a developer then take a look at something like this bip howto or checkout this list of bouncers.
Register your nickname
It's always a good idea to register your nick to stop someone coming along and taking your name. Especially if you want to be reliably available using a specific nickname. See this howto for how to set it up.
Highlight people you're talking to
If you know who you expect to get an answer to a question from it's a good idea to highlight them when talking to them.
So instead of:
[02:00:39] <Yondu> I can't seem to reproduce bug 123456
[02:00:39] <Yondu> muffinresearch: I can't seem to reproduce bug 123456
In this example because I've been mentioned by name I'll get notified of the question. This will also work if I'm replaying a bouncer backlog.
Most irc clients have auto completion for irc nicknames. This will also tell you if that person is connected. If they're not on the channel they won't be able to ever get the message (apart from looking at channel logs (unlikely)).
Configure additional highlights
Most clients have an option to allow you to be highlighted for more than just your nick. I tend to add things like my username for bugzilla so if someone links a bug and a bot displays the bug and I'm assigned I'll get highlighted.
As always choose carefully and don't have highlight set up for any words that will come up often or it will drive you crazy!
Ask questions at the start
Sometimes people will do this kind of thing on irc:
[02:00:39] <Yondu> muffinresearch: ping ... [09:01:21] <muffinresearch> Yondu: pong
And now I have to wait for the question.
Here's a much better way
[02:00:39] <Yondu> muffinresearch: ping, how do I do x,y and z. ... [09:01:21] <muffinresearch> Yondu: pong - ah you just need to do this, that and the other.
Now when Yondu's next online the answer is already waiting. You might find asking questions to people in this way is not the best fit for irc which brings us onto the next point.
Use private messages only when needed
Private messages are handy if you need to speak to someone in private (outside of a channel). However if you're asking someone a question PM'ing them is not the best solution unless it's something that you don't want in a public channel.
If you have a question it's best to ask out in the open. This way everyone gets to see the question and hopefully an answer too.
A trick you can use if on the receiving end of someone using PMs for something that should be public is reply to it from a relevant channel to pull the conversation into a public place. (Hattip @beuno for this one)
Know when irc isn't the best medium
If you want to ask a question and don't need a reply immediately then using email can be a better solution - I'd generally take irc to be a more reliable form of communication than relying on using irc for an async conversation.
Another aspect to this is being mindful of interrupting a developer. For an example see this brilliant comic by Jason Heeris. Personally I'm OK with being interupted as long as it's not something that if someone had spent two seconds to search for they would have found it for themselves. A culture where people are afraid to ask questions is not what you want so tread lightly on this point.
Mark yourself as away if you are
If you're not at your desk you can use away to tell people you're not around like so:
Good clients will usually indicate away status.
Sometime people change their nicks to show they're away. This is OK, but it does create noise in the channel due to the notification that the user has changed their nick. So most people prefer the use of away.
Remember, if you set an away status you'll want to clear it when you're back.
Is enough to do that. This is especially important when using a bouncer. You want other people to be able to highlight you when you're away but you also want to set expectations so they know you're not around.
I personally do something else at the start and end of each day. I always say good morning when I start. And I always end the day with
This does 2 things. It tells people I'm gone for the day and a side benefit is I can always search logs and work out what hours I'm keeping by looking for the "eods" alongside my nick.
If you're using irc make sure you enable logs. They can be really useful if you need to recall a previous conversation.
Don't judge people by their irc persona.
If you've only talked to someone on irc, it's important to note that how they come across on irc may not be representative of who they are. I've worked with people before who seemed very terse on irc. I sometimes wondered if it was just me. Then when meeting them face to face it all made sense it was part of their character and we actually got on brilliantly.
This is why for remote people getting together face to face from time to time is worth it's weight in gold.
Use non text-based comms
irc is a great tool. It can also be a difficult medium to use if you're trying to convey lots of information.
All the companies I've worked at remotely tended to have a solution to this problem by providing either audio or video chat solutions. Personally I like using video chats for some face to face communication, this way you can probably convey far more information.
If you need to show someone a traceback of a snippet of code. Never copy it directly into irc. A large chunk of text will tie up the channel for a while as it gets added line by line.
Instead use a pastebin service like dpaste.de and drop the link in the channel.
It's always a good idea to check that you're not posting sensitive content before you save it.
As above - don't paste sensitive things into irc. Be aware if the channel you're conversing in is private or public. Generally if you always assume you're speaking in a public channel you won't go far wrong.
If you do accidentally paste something like a password into a channel be sure to change it!
Always use secure connections to irc services where available.
Turn off automatic image display
My irc client supports automatically showing images. I thought this was brilliant until someone started dropping really unsavoury images into a public channel. Even if this hasn't yet happened to you I'd recommend turning it off before you get a nasty surprise.
Over to you
What other tips do you have?