For many, the love affair with offshore software sourcing seems to be cooling, brought about by several factors.
First of all costs differential is no longer so advantageous in places like India, China and the Eastern Europe where software programming salaries have been experiencing a rapid rise.
Secondly, stories abound of companies who have spent vast amounts of time finding suppliers, specifying their projects and then waiting… and waiting… for the final product to arrive.
Sometimes it’s missing crucial business deadlines and when the application is finally delivered it is either full of bugs, or has suffered ‘scope creep’ and gone a long way over budget, or doesn’t integrate with existing systems or isn’t what was asked for in the first place. Often it’s combination of all of the above.
An eleventh hour risk
Once a project specification has gone out the door, it is difficult to stay on top of deadlines, budget and quality issues. More importantly, until the final product appears, it is hard to know whether the deliverable is going to meet a client’s business needs.
If it’s a small, standalone solution the risk may be containable, but if the application is at the heart of a new enterprise-wide, mission-critical platform, and everything else depends on it, then any shortfall could have disastrous consequences, particularly if there is no more time or money available to get it back on track.
Not surprisingly, customers frequently end up feeling they’ve been left ’holding the bugs’, received the wrong product or have paid extra for features that should have been included as basic, while suppliers feel unfairly penalised because of the client’s unreasonable expectations.
In many cases, customers end up paying for the same project twice (or more), since much of it has to be done over again either inhouse or by a different development company.
One piece at a time
Many problems in software development projects arise because the original request outline and/or supplier contract was too vague.
As the saying goes, ‘the devil is in the detail’, and therefore it is vital to take the time needed at the beginning to get the specifications correct – not just those relating to the software itself, but to the entire production workflow.
Asking for sample screen shots and prototype modules to be sent in the early stages of a project, for example, can provide a quick win and help to re-risk the project and also provides an opportunity to check the new software will meet the end users’ needs, to correct any errors and keep the project on track. It enables solutions to be vetted for quality and accuracy as soon as they come through the door, eliminating eleventh hour surprises and reducing budget creep and time lags.
The use of formal and semi formal methods, Rational Unified Process (RUP), can also help de-risk projects.
To in or outsource management
Project management of this kind does, however, take time. One alternative is to appoint a project overseer. This can work providing the project manager knows exactly what the client wants and can represent it accurately to the development teams, with the skill to spot any deviations occurring along the way.
In addition to the excellent project management skills necessary the PM requires good knowledge of a customer’s environment – which is why many projects require more than a straightforward ‘off-the-shelf’ solution. The difficulty is that a project overseer of this calibre comes at a premium.
One increasingly popular strategy to software development is to take a componentised approach. This way, discrete components of a project are sourced from different suppliers on a best-cost, best-of-breed basis. Or a standard package is purchased and code is just built for the interfaces and extra front and back-end functionality.
A caution here is to resist the temptation to ‘tweak’ the core application, which is seldom a good idea.
Once a client has decided to retain some or all aspects of project management, the question is where do they draw the line? Which components are best be handled in-house or outsourced, at what price, where and under what conditions?
To make these decisions requires access to a broad range of market benchmarking metrics/KPIs (key performance indicators), comparators between off-shore and near-shore suppliers, the cost-value ratios of using a service provider for project management, and much more.
The best advice is upfront
Given all the variables and potential pitfalls that can occur in completing a software development programme successfully, bringing in a specialist in project estimation and sourcing at the beginning could end up paying back the cost of project several times over in time, money, and downstream risk. At the least, it could well increase a CIO's peace of mind.
Paul Michaels is Director of Consulting, Metri Measurement Consulting, UK