Saturday, July 7, 2012

Best Practices in Managing Projects with Distributed Teams


We speak about distributed teams when the project teams are located in different geographical locations. Having distributed teams brings advantages as reduced costs (especially in offshoring) but also a better usage of the talent pools from different locations.

Unfortunately there are additional risks in such projects. Most of them are caused by the communication issues and cultural differences.  Bellow I will list and describe some best practices to avoid or to mitigate those risks.

  • Choose a management style which is compatible with the culture of the teams. For example you might need to micro-manage in south-asian cultures, but in western cultures you need to allow the self-management of the teams. 
  • Understand cultural differences of the involved teams. This is extremely important when you have offshore development teams.  Everything might depend on it: management style, communication, the way how the teams can be motivated, team stability, etc. 
  • Reduce coupling between sites. A remote team shall be able to implement a task with minimal help from other teams. That’s important because the communication needs are much bigger in comparison with the colocated teams. The communication issues are accentuated when the teams are located in different time-zones . Furthermore the effort to coordinate the development effort across sites will be substantially lower when the tasks across sites are proper decoupled. 
  • Plan for more coordination effort between sites. 
  • Dedicate more effort for the verification and validation of the deliverables. Verify and validate often! Due to the communication issues or cultural differences can happen that a task is not correctly understood or does not meet the quality standards. Therefore plan for a bigger testing team, adopt an iterative development methodology with a short release cycle.   
  • Create a shared collaboration platform. Use a distributed revision control and source code management system (ex: GIT, Subversion, etc), distribute information on platforms which are available to all teams ( ex: WIKI, Sharepoint, etc) 
  • Use appropriate technologies to improve communication between project sites (messengers as Lync, telephones, live meetings). The communication technologies have to be compatible across sites. 
  • Plan for social activities to increase the cohesion of the teams. As an example plan for more travel between project sites, execute very early team building activities. 
  • Plan for more formal communication. For example, due to the communication constraints, you need to better specify the requirements or the work packages. 
  • Maintain visible an overview of the project organization. Every team member shall know who to contact in order to solve a problem. 
  • Improve language skills of the team members.. 
  • When planning meetings consider the time differences between sites. For example do not set up meetings at a time when is late evening or night at a remote location.

In further articles I will add more details to some of described best practices. The projects executed with distributed teams are more difficult to manage, therefore a proper understanding of these best practices can improve the project outcomes.