Define Expectations Up Front
Nothing sets up projects for failure quicker than requirements and expectations that are not established and communicated to both parties in advance. Although companies may want to rush into the engagement and quickly move things along, taking the time beforehand to plan, define, and set expectations is crucial. Instead of relying on trial-and-error, be sure that all deliverables, processes, timelines, in- and out-of-scope tasks, and responsibilities are defined.
Engage the offshore team during the early phases of the project to create procedures, determine team skills, and lay the groundwork for how the teams will work together. At a minimum, make sure to do the following:
- Detail clear and precise programming requirements. This practice is the best way to ensure that the code meets your expectations.
- Determine timelines for each project deliverable. Establish frequent project milestones and code reviews. This step is especially important for offshore projects and will reduce misunderstandings and identify problems early.
- Define reports for communicating project status. We all know how important team communication is for project success. When dealing with offshore resources, its importance is heightened.
- Develop a procedure for managing project changes. Make sure that both the onshore and the offshore teams understand not only the time delays but also the costs when changes are introduced during the project.
- Document procedures for escalation emergencies. No one likes to be the bearer of bad news, but the faster problems are identified and escalated to management's attention, the faster a solution can be defined and implemented.
Without a disciplined requirements or expectations definition process, rework (otherwise known as cost overruns or change orders) is the natural outcome. This endemic problem faces nearly every IT organization that uses a dual-shore development model without sufficient project management maturity.