Outsourced software development is something many companies are now approaching as a viable alternative to doing all their software development work internally. This can be done for a variety of reasons.
Development costs can be reduced by approaching a software outsourcing company that specialises in the particular niche field that your project lies within. Alternatively, a company’s need for bespoke software development may be rare and maintaining an internal software development department could be prohibitively expensive. Other reasons include cheaper personnel costs in other countries, the current difficulties with recruiting and temporarily expanding current development capacity for a limited duration. Whatever the reason, it is both large and small companies that are now making the move to software development outsourcing.
Whilst there has been a move to cheaper outsourcing solutions offered in other countries (India and some former Soviet states being notable examples) which can produce commendable results, there is still a need for local knowledge for certain types of application. A general purpose website for searching a database of information, where the database is maintained by local content editors, is a perfect example of a system where the value of the local knowledge of the developers is diminished. However, a complicated application containing decision flows based on an individual country’s legislation may be difficult and prohibitively costly to completely specify for developers with no local knowledge.
Where sensitive information is involved, either data or intellectual property, or a company is dealing with areas that require security clearance, outsourcing the development of a system may be impossible. In this instance, if the internal development department’s resources are too limited, it may be more desirable to employ temporary staff on a contract or consultancy basis. As individuals, these temporary staff can be subject to the same security clearance criteria, non-disclosure agreements, etc., as the permanent members of the development department.
The cost benefits of outsourcing also need careful management. On the face of it, a cheap outsourcing quote from abroad may seem like a no-brainer, but consideration must always be given to the internal costs that are still likely to be incurred supporting the external operation. For a big project, project management is likely to take considerable internal resource. Although an external software outsourcing company may offer project management, this is likely to only cover their own development role. The larger holistic incorporation into wider systems can still take considerable resources from a full-time project manager. Testing is also an area that requires much forward planning. Again, external entities may offer their own testing resource, but this is usually limited in scope to the specification they were provided with. If the solution is to integrate into wider systems, then testing of this integration must be built into any project plan and will require internal staff to perform this role. Finally if the outsourced project requires the knowledge of any existing internal development personnel, then it is important not to underestimate how much of their time is likely to be taken up with answering queries and providing assistance to the outsourcing company’s own personnel. From experience, a good rule of thumb is to estimate this time then multiply it by ten!
In summary, software development outsourcing is a booming business, both at home and abroad. However, serious consideration needs to be given to each solution on a case by case basis to ascertain what outsourcing solution, if any, is correct for each application.