There are as many different ways to use offshore resources as there are people who engage offshore resources. Over the years I have developed techniques that work well for me in my situation. Here are some things that I do to ensure project success.
Use Offshore Resources for Isolated "Heavy Lifting" Tasks
By performing the project management myself, I remain the key point of contact for my client and I always know the exact state of the project.
Through extensive requirements gathering and design activities, I come to understand my client's needs very thoroughly. Unlike many of my resources, I have the same first language as my client and I have a basic familiarity with their business and the culture in which it operates. I guide my offshore resource(s) through comprehensive quality assurance activities to ensure that the requirements are met. I confirm that the software behaves as expected before my client ever sees it.
See the Work Early, See the Work Often
The sooner I start looking at the system, the earlier I can catch and correct any miscommunications and get development headed in the right direction. A demo or picture isn't good enough. I expect to get my hands on it to start testing as soon as possible in a project.
I set the expectation right from the start that I will expect to see the software early and often. I establish a plan for having a test environment available ASAP. I communicate that I realize the system won't be finished or perfect when I start looking at it to minimize resistance to letting me see it soon after it starts, rather than waiting until my provider thinks it's finished. Thanks to agile methodologies, developers are becoming less resistant to showing their work unfinished.
Time OverlapWorking with offshore resources means that a lot of the work happens overnight. I find it key to a successful project to have as much time overlap as possible to:
- Prevents unnecessary delays when my resources have questions
- Minimizes mistakes from my resources going too far down a wrong path before I provide feedback
Indian resources work a lot with North American clients and are used to adjusting their schedules to accommodate ours. Many offshore people begin their work day in late morning or afternoon and work into the night in order to overlap with the North American morning business hours.
I am an early riser by nature, and the more I work with offshore resources, the more I run with my nature rather than trying to fight against it. I start work by 6AM each day, and sometimes I start as early as 5AM or 4AM, depending on a project's need for me to collaborate with my offshore resources.
It is not necessary for me to begin my work day so early, but it certainly is helpful and gives me the maximum overlap possible with my offshore resources. The expected time overlap should be established early - find out what your resource's working hours will be and negotiate an agreed upon overlap window for work days. You don't have to be a crazy early morning person like me, but it does help.
Stick to What you Know
To have a successful project utilizing offshore resources, you need to have a thorough understanding of the processes and tools which will be needed for completing the project, even though you won't personally create every deliverable.
For example, I do not have any experience with "app" development. Occasionally I am asked to bid on an app development project, which I always turn down or refer to another provider. I do not have any understanding of the technologies used for app development and deployment, nor any concept of how long development takes or how complicated specific features might be to develop. It would be foolhardy for me to take on a project that I know so little about. I would not be providing value - I would be a hindrance. My own inexperience would be the biggest risk factor in my own project.
Other kinds of projects that I shy completely away from are:
- Pure web design projects with no database or programming. I have a colleague in Toronto to refer.
- Template-based web development. Projects involving creating web sites using Drupal, Joomla, Magento and the like are outside of my skill-set. I have a colleague in Edmonton to refer.