Working Successfully with Virtual Teams
What Are Virtual Teams?
With the advent of globalization, as well as major improvements in telecommunications infrastructure in many parts of the world, it is much easier for projects to be done by people working together from different parts of the world. This has enabled organizations to exploit time differences, the availability of skills, not to mention cost differences to get projects done faster, better, and cheaper. The success of big open source movements shows how successful virtual teams can be. One can see project teams geographically distributed in two main ways. One is when a big project is broken into smaller projects and each smaller project is done by a team in a certain location. The other when the team doing a project has each of its members in different locations. For the purposes of this article, both types of teams could be considered virtual teams. This is because that, even in big projects split into subprojects, there are usually many dependencies among the subprojects. This is in many ways similar to dependencies between team members in a dispersed team working in multiple locations. Good project planning calls for reducing dependencies between different project parts to prevent deadlocks, conflicts, and integration issues.
Making Things Work with Virtual Teams
Working with virtual teams poses new challenges to team leaders and managers. Differences in time zones, culture, communications lags, and so on creates problems in making teams feel connected and enthused about their work. Team leaders and managers need to work harder in such settings to overcome these issues. Some useful techniques that I have found from experience are:
- Start with good planning: At the project planning phase, try to reduce dependencies between subprojects or work being done by separated team members as much as possible. Also, try to get commitments from stakeholders to provide clarifications and participate in virtual meetings as and when needed. They are normally busy people and it will be difficult to get their time unless they are convinced that, without their participation and feedback, no real progress will be made. When planning the project, define dates where a partially built but evolving solution will be integrated and possibly demonstrated to stakeholders. This can help uncover many issues as well as clear up misunderstandings as the project progresses. I have found that this chance to see what they are getting early on is a very useful incentive for stakeholders to make time to participate in meetings and reviews.
- Keep in touch regularly: Make sure people keep in touch regularly—have weekly or daily status meetings. If there are not too many dependencies and integration points are frequent and agreed upon, one can use weekly meetings. More frequent meetings will be needed if there are many dependencies and integration points are not well defined. Keep these as short as possible and have a predefined format. Try to push any issues that come up to a separate meeting that may involve only part of the group—those who need to be involved to resolve the issue. This reduces the likelihood that the rest of the people in the meeting become resentful of spending time discussing problems that may not concern them just yet.
- Respond quickly to problems: Encourage team members to talk with each other the moment they face problems or difficulties. I had to get my team members over the mindset that they had to make an international call to talk with other team members as needed. Spending just fifteen minutes on the phone often saved days in wasted efforts. Spending a few dollars on a call was well justified!
- Use technology to bridge the gap and share information: Tools such as instant messaging, software like Microsoft Netmeeting, and so on are great for demos, walkthroughs, and discussions. Get Web-enabled versions of tools for bug tracking, requirements management, reporting, document sharing, and so on.
- Create peer review groups to share information: If the project is broken into multiple subprojects done by different teams, have regular online or phone conference meetings of team leaders/managers. Occasionally, depending on integration requirements or global project needs, you may also need to organize team member meetings where team members from each team who are charged with keeping certain standards get together to share knowledge and progress. For example, on one project we had both weekly project manager meetings as well as a meeting of people on each team charged with ensuring that all subprojects were correctly internationalized. These sorts of meetings are great for catching dependency problems as well as creating peer pressure on folks to solve issues quickly. No one likes to look bad in front of his or her peers!
- Have meeting facilitators: All meetings involving more than a few people should have a facilitator/meeting coordinator. This person has a really important role to play by ensuring that the meeting sticks to its agenda and does not run over its allotted time. It helps to ensure that everyone agrees beforehand that the meeting co-coordinator/facilitator has full control over all elements of the meeting. They can decide which questions are relevant, when to move to the next item in the agenda, and so on. This will reduce friction and help ensure that meetings are productive and run according to schedule.
- Build trust within and between teams: Encourage people to be more understanding of each other. Try to quash any conspiracy theories. One should not start believing that another team or person is trying to give you problems because they have delayed doing something or avoid talking with you. If left unchecked, this can really poison the atmosphere and destroy the project because people start to believe that they are enemies and not part of a team that has a common goal. Most of the time, the problems are due to miscommunications or that the other team or person has some other problems that are consuming all their attention. Trust is a really important element and should be continuously reinforced.
- Have escalation procedures for intractable issues: Encourage team members to escalate issues if they remain unresolved. There should be a standard escalation process. On projects I worked in, if team members had problems they raised them to the project manager. The project manager than tries to resolve the issue with his counterpart project manager on the other team. If that failed, project managers could raise the issue at weekly meetings that all project managers attended.
- Have fun together: Once in a while, try to get everyone to meet and do something together. This really helps build trust and relationships. Alternatively, have a member from each team rotate around into another team. This helps them better understand each other's needs as well as builds good relationships.
Sanjay Murthi is President of SMGlobal Inc. He has over fourteen years of experience in the software industry in a variety of roles and responsibilities. He now helps companies to review and improve their software definition, development and delivery process. He can be contacted at firstname.lastname@example.org.