While the question of outsourcing development includes a number of complex issues, the challenges change once the decision to outsource is made.
One of the major drivers in any outsourcing process is economics, with cost savings a normal goal.
However, if a project fails, those savings are not only illusory, significant extra costs may occur.
Avoiding Failure when Outsourcing Development
Several elements will increase the probability of success when outsourcing software development projects. Likewise, there are a number of items that demand your attention to avoid failure. It takes both positive and defensive tactics to get the job done on time and on budget.
On the positive side, the most critical step is to find the very best service provider for your particular project. The criteria for this first step are many, including the most basic, the country where the team is located. The search for the right service provider starts identifying or sourcing potential service providers for the project. It’s hard to do too much due diligence on a potential development team. You can check references with others who have engaged the service providers you are considering. There are also advisors and experienced firms, such as Accelerance, who can be invaluable to the process and can make vetted recommendations.
The process moves to screening after the initial list of qualified, potential development teams is completed. Beyond the initial recommendations and top-level comfort with potential candidates, the screening process involves a matrix of objective and subjective criteria. They should include everything from solid references to costs to your gut feelings about the integrity and capabilities of each service provider.
The final step when outsourcing development is selection of the finalists, narrowing the field to allow for even more detailed scrutiny. This may include site visits by both sides and input from other members of the management team. After a final selection is made, software development proceeds towards successful completion of your project(s).
Hoping for the Best, Planning for the Worst
You will select a team you feel confident can get the project done correctly. In all probability, the service provider will also share this confidence. However, it is important to build in safeguards, including:
Clear, written expectations for deliverables and timelines, including release criteria
Regular, formal checkpoints for the project (like a daily Scrum or standup meetings)
Control of code as it is developed and released
Clear criteria for release of progress payments, with an adequate reserve against final performance signoff
These steps are necessary to avoid the problem that cost one outsourcing client more than $1 million. The project suffered numerous delays, features were missing and the work was not to specs when it finally was delivered. However, when the client decided to move the project to another development team, the code was held hostage until the full contract payment was made, even though the work was not completed! That made for a very expensive mistake.
The application of these proven business procedures and best practices for any outsourcing software development project should all be part of your avoidance of a software development disaster.