At some point in time, we’ll probably all manage a project that includes offshore developers – if we haven’t already. The use of offshore developers located in countries like India, Russia, Vietnam, and China has become increasingly popular due to the low hourly cost involved. On a company level, outsourcing development work – in all or in part – can greatly increase the profitability of a project or IT initiative.
To help ensure the success of your project while engaging offshore developers as part of your project team, you – the Project Manager – can follow a few key practices. Some of these are outlined below:
Identify a leader
As the Project Manager, it is critical that you identify a strong leader among the offshore team to act as your primary point of contact. It’s hard enough to work with a group of developers on the other side of the world and 12 hours away without having to oversee the work of the entire staff for the duration of the project. Identify a leader that you can communicate regularly with and make that person responsible for all updates and reports. That will be the individual who is available to be on customer calls and report development status as needed. If there is a US-based lead developer this offshore team lead will be the person who is available to that lead developer during the delivery team’s workday schedule.
Establish a communication schedule
When your team is close and communication is easy and straightforward, you can likely rely mostly on the weekly Status Meetings, weekly Status Reports, the Project Schedule and a few emails to ensure that everyone is on the same page. I also like to have a delivery-team-only meeting prior to the customer call just to ensure that everything on the Status Report is accurate and up-to-date. When dealing with development team members on the other side of the world, more frequent communication is going to be necessary. More emails, likely more scheduled team calls and a separate status report from the offshore team to the Project Manager on a weekly basis should be part of the project communication methods. And always follow-up verbal communication with written communication to ensure proper understanding and commitment on both sides.
Manage scope as if your life depended on it
Communication is always going to be an issue whether it’s across cultures, time zones, pure distance…whatever, there is always the risk that it can present some sort of roadblock. Since that is the case, the Project Manager must manage scope as though their life depended on it.
It’s a given that scope must be managed with the customer. Rarely do you think of it in terms of managing it within your own team? But when you’re dealing with offshore development in the form of a 3rd party organization or just developers working for your company who happen to be in another country, it can also be an issue for your team members.
Miscommunicated or misunderstood requirements can cause scope issues. Poor oversight of the offshore activities can strain the budget and timeline and thus create scope issues. Sheer distance coupled with a lack of identified offshore leader (see above) can result in renegade developers who think they know best what to do (but really don’t) moving forward too fast and down the wrong path which will also ding the budget and timeline and result in scope issues. Keep a tight rein on the project scope and schedule and communicate well and often and you can mitigate this risk.
It will be critical for the delivery team to act almost in the role of the customer when development milestones are reached. Use an iterative development process and test regularly. Test after every development milestone before the customer is ever engaged to review the development activity or the functionality of the code. That way, any scope issues or requirements misunderstandings can be identified and possibly corrected before the customer is aware.
Monitor the schedule in great detail
This is always a critical responsibility of the Project Manager. However, when you’re working with a development team that is worlds away, it becomes even more important. You can never take the phrase “things are going well” and run with it. You must identify status to very specific details. Make sure that the development tasks are broken out into smaller and very trackable tasks. Obtain status updates on those tasks from the offshore team lead on a regular basis and then ask again. You may have to dig deep and re-iterate your understanding of the status and obtain solid confirmation of status from the offshore team lead throughout the project.
I’ve utilized offshore developers on several projects and for the most part, it has been a great experience. The education level, dedication, focus, and overall work ethic has been very strong. My only problems so far have been with time zones and sudden unavailability of a particular team member. On one occasion, a team member in a certain country announced he was getting married the following week and would be off the project for a full month as was the custom in their country following the wedding. The real problem there was not with the developer but with the US-based development manager who knew this and had failed to communicate it to me and obtain a suitable replacement in the proper timeframe.