Software development requires frequent interaction. As companies extend their IT department to remote locations, they tend to invest more time and efforts to make the communication process flawless. As the business scales up, it may become challenging to manage the virtual team, nevertheless there is a comprehensive set of tools to keep the understanding on a high level.
In-house team members manage the team, assign task and control their execution. The most helpful tools will be reviewed further. However, the most optimal method of communication depends on the number of virtual team members, on their roles and on other project characteristics.
Individual messengers are good as they are mostly free and easy to install and to use. They are good for environments where one cannot talk aloud, they do not require high speed Internet connection and they are the best tool for team members with not perfect English skills. Text chat allows to discuss small issues once they arise. Chatting creates another level of documentation as the chat history may be exported or reviewed later. Some people do not like messaging as it distracts them from work. To prevent this, it would be better to keep messengers switched off for certain periods, or simply to increase one’s discipline so that popping messages cannot influence one’s work. Another alternative is to switch to e-mails completely.
Voice interaction provides higher level of understanding and allows to have a more detailed conversation. Using voice may be more cost-consuming. Given that all the team members speak fluent English and the connection is good enough it is a great tool for conference call to enlighten the most important issues. It is best to have such meeting scheduled, and to agree upon the agenda beforehand.
Video conferencing tends to be gaining popularity as it allows to see each other and to read the body language. High quality video conferencing certainly demand well-established infrastructure. However, as the technology develops, we may expect video conferencing to become less expensive.
Web conferencing and screensharing tools allow participants to follow the leader during the presentation and obtain a record for later use. In some cases number of participants can be limited.
To obtain and manage the corporative knowledge it is effective to use wikis. For the smaller projects it might be replaced with Microsoft Office Groove as well.
Google wave also tends to help a lot as a communication tool. It allows users to join the interaction at different time and simplifies the sharing of visual presentations. As more people discover and start using it, there is more google wave users feedback provided, along with its benefits and negative sides.
Face-to-face meetings. It is arguable, to what extent are the face-to-face meetings important. Personal encounter, especially for large teams, proves to speed up the initial stage of the project. On-site visits help help to decrease the time for the developers to familiarize themselves with the project information. Face-to-face work strengthens the team and increases the team spirit, yet there are no proofs that this is an inevitable action to take.
I would recommend following articles - this article on BNet on the collaboration for remote work has provoked quite interesting comments, and there is a comprehensive list of communication tools on Technology Magazine and on Mashable available.