It is widely assumed that software developers are introverted and quiet individuals, who like their own headspace when writing code. In my experience, this is generally true; I sometimes like to spend the whole day with my headphones in without interruptions, and yet at other times I would much prefer to be around a buzzing office with lots of voices and conversations to which I can contribute.

The use of Instant Messaging (IM) services at work means that colleagues don't always need to have a face-to-face conversation to discuss something, or to share information. Of course you can use email for this, but IM is much quicker which makes it perfect for sharing snippets of information.


For over a year now we've been using Slack for our internal chat application, as a replacement for our previous solution, Campfire. Put simply, Slack is great. It's been fantastically designed for both simple and advanced use, it has an amazing array of compatible plugins and integrations, but most of all it feels fun to use.

I engage much more with my work colleagues (both in public room and private one-on-one conversations) than I used to, and that's because the software makes me feel like conversing with colleagues should be encouraged, rather than just happen on its own where necessary. We also invite our clients to use it, so that real-time conversations can be had with them too, without the overhead of typing a large email. There is a trust in place that chat will be kept professional within the rooms in which our clients reside.

Slack does have one big downfall however. It's too easy to use. Often I've found myself having conversations online which should have been had in person. It's all too easy to forget that before we had email and IM services, we actually had to talk to one another. Here are a few things to bear in mind:

1) Purely text-based services provide no emotion, and no intent

It's very easy to misinterpret something simple when you can't see someone's face, and this should not be underestimated. You can make a hugely different impression on someone just by lacking any hint of the emotion associated with what you said. Admittedly, there are some occasions where it may not be possible to have a face-to-face conversation, so why not use an emoticon (or an Emoji) to provide some context? Make it clear to the person you're addressing how you feel just like you would in person, and leave very little room for misunderstanding. Alternatively, why not use something like Google Hangouts or Skype where possible? If you can't be there in person, then sharing your facial expressions via the internet and a webcam comes a close second, but can never be as good as them standing or sitting next to you.

2) Sometimes there are things which aren't appropriate for an online conversation

As an extreme example, a chat about something personal or about someone's performance should be had in person. Facial expressions and clarity can make all the difference between it going well for the person involved or going badly. Next time you're having a conversation with someone online, ask yourself whether it is particularly sensitive, and if you would feel comfortable having it with them face-to-face. If not, should you be having it at all?

3) Occasionally I find that a text-based conversation just doesn't have the same feeling about it

If I'm discussing a technical problem with someone, the syntax highlighting for example on Slack can be a great tool. However, there really is nothing quite like standing at a whiteboard and discussing some code or architecture with the archaic method of pen to paper. The instant feedback from someone (or even just their facial expression) can be a much more powerful tool to judge reactions, rather than giving that person time to think via the asynchronous nature of an IM client.


Remember, with great power comes great responsibility. IM clients like Slack are great for productivity, and for that reason I cannot recommend them highly enough. They promote interactions between colleagues, group discussions and general inclusion and transparency.

Also, it speeds up conversations and decision-making due to an easily-accessible history, and the fact that no-one can "dominate" the conversation as much as is possible in person. Be aware though, that an online tool will never be able to fully replace the power of a human-to-human conversation. Facial expressions and spontaneous reactions to works and actions can't be fully replicated via software, at least not before we're all androids.