Here's a new article from Prakash Sodhani on working with offshore teams:
A project’s success implicitly depends on the team’s success. In a modern world, not many companies can survive without depending on other companies. Every company has some of its services outsourced for one reason or the other. Offshore development not only allows companies to focus on their core activities, but also provides them with a means of fulfilling their business requirements in a cost effective manner. It's obvious that considerations change considerably when working in a team instead of an individual effort. Those considerations change even more when teams are separated by thousands of miles all around the world.
A few years ago the word team implicitly referred to members in one location, or at least in one country with a common purpose. Trends in modern industry have changed how we perceive what a team is. A variety of factors, namely, advancement in technologies like video conferencing, online communications, flexibility of people to adjust their work hours as required, and cost effectiveness have split many project teams into an "on-site team" and an "off-shore team".
What are the factors we need to consider for a project success when working with an off-shore team? The question becomes ever more important in today's enviroment where off-shoring is becoming increasingly prevalent. The following considerations can affect the "hybrid" (on-site and off-shore) team's success:
Formal and frequent communication mechanisms need to be established. The communication mechanisms need to adjust with change in the company's goals and policies. Emails might not always be the best method of communication because of time zone differences and matters of urgency. Frequent phone conversations might not be feasible due to cost considerations.
I was working on a team which had a few off-shore members. Our primary mode of communication was email and AOL instant messenger. We also used to have at least three weekly conference calls that were very helpful in clarifying day-to-day issues. However, the conference calls were very expensive and we were advised to cut down to just one confernence call per week. Considering the magnitude of the project and realizing the one call per week was not sufficient, we had to adjust our working hours so that members were available to communicate via instant messenger service for at least an hour in both time zones every day to sort out daily issues.
2) Misunderstandings and misinterpretations
Lack of interpersonal experience like whiteboard sessions, face-to-face meetings, coffee room gatherings, etc. can have real impact. It's essential to convey and verify the project concepts through prototypes and models and emphasize them at every possible opportunity. It's imperative to make sure that the off-shore team understands the conveyed ideas clearly.
3) Effective method of conflict resolution
In every team there is bound to be conflict, more so when you can't have in-person meetings to clarify your views. A procedure should be established for such situations. This might involve a regular conference call involving the supervisor, video conferencing meetings or a clarification by the supervisor through an established communication medium. An onsite coordinator, if available, can also help.
4) Clear Expectations
Every detail required for project success should be explicitly stated and documented. For example, if a new test case document has to be introduced, make a prototype with a sample scenario and ask the off-shore team members for comments. Extensive and detailed design documentation should be prepared for the offshore team. Unclear expectations often lead to undesirable output.
5) Define responsibilities and leadership hierarchy
Roles and responsibilities of every team member should be clearly defined. Off-shore team members should be made clearly aware of their roles in the project. Have an on-site team member supervise the activities of the off-shore team and update onsite team as required.
6) Know the status
Frequent status reports, ideally daily status reports, should be obtained from the off-shore team. This helps to identify any miscommunication early and helps better gauge the team's progress.
7) Training and Education
In most cases, off-shore team members need to trained and educated corresponding to client’s requirements. For example: I am currently working on a healthcare project and there are a number of differences between the healthcare policies and practices in the client's country and the off-shore team's country. We have to be very diligent to avoid confusion.
It's also very important for off-shore team members be educated about the project details and requirements. This can be achieved through methods like training tutorials and webinars.
Working with off-shore teams can save your organization a lot of time and money, but it can also be an excercise in frustration if you're not prepared for the extra work and preparation you'll need when dealing with distributed teams. Keep the communications open, clear and specific, use plentiful examples and prototypes to illustrate your concepts to each other, and always start your projects with plenty of education and preparation.
About Prakash Sodhani
Prakash Sodhani is a Quality Control Specialist for an IT company in Texas, he is involved in various quality control and quality assurance activities and has experience working on various quality methods and technologies. He presented technical paper titled “Testing variability in a software product line,” at the International Workshop on Software Product Line Testing held in Boston in August 2004. Prakash has a M.S in Computer Science from Clemson University and several software certifications including CSTE (Certified Software Test Engineer), SCJP (Sun Certified Java Programmer) and Brainbench’s Software Testing certification.