In my team I have some developers that always have two or three IM windows open. The majority of these windows are not related with the project where they are nor with asking or offering programming help. I also use IM and, off course, some of my "talks" are not related with the job. But I feel that when I am using IM my productivity drops. I mean, there is more "mental" work to change the scope between the task I am doing and the conversation every time a new message arrive. Do you face the same situation? Is there some good practices to avoid this (excluding, off course, stopping using IM)?
I keep my IM windows minimized so that I'm not distracted by them when working. I also close any conversation windows after the conversation is complete. I try to keep my IM's work-related when at work.
Anything can be a distraction: email, IM, music, people dropping by. You just need to manage the distractions. It could be that you need to take a few more breaks to refresh yourself mentally so you're not continually tempted to engage in non-work activity. I know, for instance, that if I'm stuck on a problem I'm much more likely to pop open a browser window and check SO. At times like that I find that if I get up and take a short walk around the building I'm much more able to focus when I get back on the problem at hand.
YMMV.
I have two separate Instant Messenger accounts: one with work colleagues only, and another one with friends, family, etc. I only use one of these accounts at a time. I find that making the switch from one account to another helps a lot with separating idle chit-chat from work time. You could do something similar with 'Do not disturb' states, but I didn't have much success with this (people would contact me anyway about trivial things). I find that having two separate accounts sends out a very clear signal and helps me be more productive.
You need to be in control of your work environment and the interruptions you will allow in order to be most productive. This isn't just for IM, but also for e-mail, telephone, people coming by, etc. Any book about productivity will say to turn off your e-mail notifications and check it at set times throughout the day when you are able to spend the time to deal with it. In many ways, I would treat IM the same way.
Some strategies might include:
- Disable Notifications - prevent your IM software from notifying you when a new message comes in (pinging, flashing, popups, etc) so that if IM is in the background/minimized/inactive you won't be interrupted.
- Multiple Accounts - using separate accounts for work and personal contacts allow more granularity in turning on/off the ability for certain people to contact you.
- Time Windows - only have IM turned on at certain times during the day.
- Busy Status - use the busy status to indicate to others that you would not like to be interrupted. Whether or not your IM software suppresses the incoming messages in that state, it may at least discourage people from contacting you if it isn't important.
- Auto-reply/Status Message - automatically reply to those contacting you that you are busy at the moment and to contact you via XXX (e.g. phone) if it is urgent.
- Turn if off - you don't have to stop using it altogether, but if there is a period of time where you need to concentrate on your work, turn off IM along with any other distractions.
It depends on people and work enviroment, sometimes it's increase productivity because it can increase your mood, and if your mood is great, then you can be very productive. In my daily basis at work, we all use skype, not just for work related talks but also some chats with friends and etc. And also it depends on person, for some they can chat all day long without doing anything so this you need to control. For me, when i'm busy I go invisible, or set my status to do not disturb and everyone understands it. But if you will block IM for everyone, then productivity can drop down, because people like to comunicate, and you can't "close them in the box".
I find that IRC is actually the best for this. You can have teams of people in the same channels, get connected to different departments, or ignore it all at once.
IM (Instant Messaging) increase or decrease developer’s productivity?
After staring at code for a long time you can become resistant to obvious solutions. I vote for "increase productivity" but it depends on your IM contacts:
Not work-related contacts
- PRO: can give you creative breaks, let you relax
- CON: can interrupt your work flow, disturb your concentration due to spam useless messages
Work-related contacts
- PRO: built-in message notification (extremely shortens response time)
- PRO: provides a non-burocratic way to communicate and exchange data - either company-internal or with the customer - stay in touch
- PRO: acquire strategies / hints
- PRO: distribute knowledge
- PRO: synchronize with other employees
I personally use Miranda for managing multiple protocols (ICQ/MSN/Xfire/IRC) for 7 years now and don't want to miss it.