Can Outsourcing Have a High ROI?
Throughout my career I have heard, and seen, managers that believe that a labor cost savings of 50% to 80% could be realized just by outsourcing of work. Although there have been many stories of this type of savings the question is can all business realized these types of cost savings. The answer is it depends.
The one common factor I have seen in every business I have worked in is that the overall development process is rather immature. Areas such of project management and quality assurance have been lacking in every business I have worked in some form. Before I continue I would like to give a short definition these terms so that we are all on the same page.
Project Management – The process of defining scope, requirements, cost tracking, timelines, and project status dissemination. This area should include, but not be limited to, business analyst, project statistician, and tactical operations lead. The business analyst, BA, job is to know the business users and how they use the system being developed. The BA has to be an expert in the business process that the system if going to be used for. It is the BA that should to the market research to how a particular functionality should work as well as to be the user interfacing person. The project statistician is the one who needs to keep all project statistics. From estimated time for a task to the actual time for the task. The project statistician should be able to show if the project can be projected on time or late. The tactical operation lead is the taskmaster of the project. This is the person that will hold all team members accountable for keeping tasks on time. These skills do not have to be in a single person, nor do they have to be all different people, but all these aspects must be monitored, and lead, if any project is to be successful.
Quality Assurance – This is the process of ensuring that all deliverables meet expected standards and that processes are running at optimal levels. Most businesses use testing as the only way to ensure deliverables meet expected requirements, but this is a misconception. Testing in only a part of this. Other parts include architectural integrity, standards, and development process itself. These are the areas that are lacking in most development teams today.
Using these definitions it is clear that these areas can work the same for both outsourced and internal deliverables. This makes for the best possible process, one that will give the system a very consistent outcome. This is also the failure of most outsource initiatives I have been around. Just about every business I have been around tries to have a different process for the outsource deliverables and this has always lead to disaster.
I believe that a success outsource project starts with a string of successful internal projects. This is because the internal projects help refine a process that can be used for all projects. I once lead a team that developed and maintained a data import subsystem for a major application. This team had such high productivity that projects just keep coming in. At one point it was clear the team could not handle all the work coming in. A decision had to be made; expand the team or outsource the work.
The management team wanted to try to outsource the work because it was believed that the labor cost would be much lower than growing the local team. The team was doing so well from a productivity point because there were processes in place that everyone on the team had to follow and the process, as well as the system architecture, was created for high productivity.
The outsourcing company had a hard time with many of the processes because they involved more modern techniques such as ULM Class Modeling and Test Driven Development, TDD. Since the process include measurements, it was easy to see that the outsource company was not hitting the target. Once the numbers were shown on the cost of rework, the management team decided to grown the internal team where skills and training could be best handled for this group.
This does not show a failure of outsourcing, it only shows the failure to select a proper outsourcing company. Had the outsourcing company had a more mature development process the outcome would have been different.
If nothing else this should show that if there is sufficient maturity of a development process then any outsourcing initiative should have a change of success. However, it may be hard to realize savings of 50% to 80% without a mature development process already existing on both side of the equation.