Outsourcing an IT project offshore is not a walk in the park. Only 37 percent of the InformationWeek 500 have tried it (although more than 50 percent of the top 100 have), and failure rates are estimated as high as one out of three projects. Compared to benefits administration or other outsourcing activities that are based on simple, highly standardized services and data, IT projects’ requirements are intricate and demanding, calling for:
- A deep understanding of the unique and complex customer environment.
- Designs that meet current requirements and that correctly anticipate the client’s future technology and business processes.
- An ability to respond quickly and appropriately to the client’s shifting needs and whims.
These requirements are hard enough to get right using internal resources, so when a project is assigned to faraway strangers, the potential for problems increases exponentially. The only way to control the risk is to build strong partnerships, tightly control the projects, and keep alert and informed at all times.
While there’s no single script for an outsourcing project that can handle all of the possible variations—the client, the internal project team, the outsourcer and their team, the project politics, the technology, the deadlines, the budget, and so on—you can and should follow certain basic practices across the board. Some of these points will sound like generic Project Management 101 advice. But working with an offshore development team is not like having your development team down the hall or even speaking the same language. Your success is in the hands of strangers, and you’ll need to compensate or run the risk of an expensive disaster.
Read previous articles on offshore development
- ”Offshore development reduces cost, decreases production cycle”
- ”Four tips for launching an offshore development project”
I recommend that you start slow, with small, well-defined projects, and go through iterative learning and partnership building cycles as you scale to larger projects. Even if you find yourself unable to take that approach due to political, project, or budgetary constraints, look for ways to divide work into bite-size pieces within the context of a current project, keeping the milestones manageable. Whenever possible, set objectives for the current phase that you are prepared to achieve, with a clear roadmap to success, and build on small, rapid successes to build readiness for bigger goals in the future.
Provide clear direction
An outsourced IT team starts with several major handicaps. They don’t know your company, your applications, or your standards; they don’t have good access to your people; and they may have trouble communicating effectively due to language and cultural barriers. All of these hurdles mean the instructions the team works from have to be very clear and thorough. You must anticipate and include answers to the issues that normally get discovered and resolved through in-person reviews and discussions.
The most effective requirements models for outsourcers are often:
- Use-cases, or storyboards per scenario
- Templates for screens, code, etc.
- Pseudo-code for rules, and process flows for procedures
In addition to functional requirements, be sure to include look-and-feel specifications, system integration specifications, and coding standards and practices.
Test, test, and then test some more
When the outsourced project comes back in-house, you must test it more rigorously than usual to compensate for the increased likelihood of missed or misunderstood requirements or buggy integration. As early as possible in the process, define acceptance tests that capture the end-to-end user processes, replicate the complete system environment, and verify required results under as complete a range of scenarios as possible. Be sure to update the tests whenever you clarify or extend the requirements. Set up test environments and procedures at the beginning of the project, and practice running and evaluating tests together. You’ll be surprised how much tweaking it takes to establish a smooth, complete testing process that includes making product design and project plan changes based on the results.
In almost all cases, you’ll find the work ethic of experienced offshore outsourcing providers outstanding and their team and project management disciplined. But it would be a mistake to conclude that the outsourcer will manage the work without oversight from project leaders in the United States. While it’s not necessary or even advisable to micromanage the outsourced team’s assignments, it is critical to maintain a complete and accurate awareness of progress and issues, to be there when decisions get made, and to course-correct the plan as things evolve. Since you’re managing from a distance, you’ll need to overcompensate.
Agree on clear timetables and procedures for communication, project status, deliverables review, and decision-making. Then communicate these procedures in a highly visible way, such as a project kickoff meeting, to everyone involved. Assign responsibilities for making these processes work, along with the required tasks, to specific individuals on both sides. It’s often helpful to designate pairs—one from each side—that are expected to keep in close touch and share responsibilities.
Define clear timetables and formats for all deliverables, and get your eyes on results as soon as possible—you’ll inevitably spot key assumptions the offshore team missed, and you’ll have the chance to course-correct in time. You can stay on top of results either by staging a logically ordered delivery of specific components or by agreeing to delivery of interim versions of the overall product with increasing levels of functionality.
Respect cultural differences and visit the production site
Be respectful but rigorous. Cultural differences are real, and patience, understanding, and respect are required from both sides, but there’s work to be done and you’re the client. Insist on open and complete communications at all times, and actively work through any misunderstandings until everyone is on the same page. Be aware, though, that many cultures work within a far more rigid organizational hierarchy than is common in the United States, and the offshore team will expect you to observe defined lines of communication and authority when dealing with people on their end.
If at all possible, arrange for a few of your key people to visit the outsourcer’s offshore offices during early stages of the project or, as a second-best alternative, for some of their management to visit you. There is simply no substitute for direct experience of their culture and their work environment or for building the interpersonal relationships and trust that will be your best tool for maintaining real-world insight into work progress. My partners and I spent two weeks in India working with key managers and executives of a major outsourcer, and after several long meetings we drastically increased our productivity.
Expect the unexpected
Stuff happens. Expect it, plan on it—and learn from it, quickly. Don’t be afraid to update your process, plans, and schedules. By expecting and responding positively to issues, you’ll keep everyone open and honest, which is the No. 1 prerequisite for success. But have a Plan B—if a catastrophe occurs, or if you have the wrong partner and can’t make progress on your issues, you will need to have a fallback plan in place.
The details of a development project are hard enough to get right using internal resources. When part of the work is distributed to strangers half a world away, the potential for problems increases exponentially. The only way to control the risk is to build strong partnerships, tightly control the projects, and keep alert and informed at all times. The reward for all this diligence is great: access to high-quality skills, new levels of workforce flexibility, vastly improved time to results, and substantially lower cost. When you get the right partner working on appropriate projects, offshore outsourcing is more than worth the effort.