Many factors compromise software development, leading to loss and exposure to risk that could dwarf the cost of the software itself.
The most common are imprecise client specifications, insufficient planning and analysis, poor project management, continually moving goalposts, unrealistically short timescales, weak quality assurance and underestimated costs. Faced with shrinking deadlines, spiralling costs and a need to get the "product" to market quicker it is often the software testing and the validation processes that are sacrificed.
Only about 30% of organisations allocate a separate testing budget when implementing technology, even though over 70% of them recognise the crucial role of testing in the development process. Without having undergone rigorous de-bugging, projects may be delivered with high levels of errors (as high as 45%). If the application works at all (and often it doesn't, in which case it is quietly shelved) errors may only be discovered when transactional breakdown occurs.
The high cost of bugs
No-one really knows the real cost of failed software projects, but in the US alone it is estimated to be upwards of $75 billion a year in re-work costs and abandoned systems.
A few years ago, poorly tested software caused transaction processing problems for millions of online customer accounts at one large multinational bank, leading to wide-scale email phishing attacks that cost the bank over £50million.
Then there was the FBI initiative to enable agents to share case files electronically. The code was so bug-ridden the bureau was forced to abandon the project and lose $170 million.
There is also the famous case in 1999 when a $125 million NASA spacecraft was lost in space because of one simple data conversion error.
Where good quality assurance procedures are in place, a newly completed application might still contain 10% to 15% errors. These are usually passed on to the customer who then has the burden of finding and correcting them, hopefully before any major risk episodes. Despite testing procedures, even a best-of-breed product usually still contains a margin of error, typically around 5%. At this point, both vendor and customer might decide that trying to reduce this percentage is a case of diminishing returns and not worth the additional Investment.
Steps to success
Customers and suppliers need to adopt a consistent approach to software development and implementation. They need to be prepared to invest sufficient resources, optimise pre-existing modules and factor the necessary testing procedures into the development lifecycle. Good project management, detailed specifications and good documentation must be provided upfront and should make allowance for the fact that things can take longer than expected.
Re-work can account for up to 40% of the project cost, so the earlier defects and potential problems are identified, recorded and rectified, the lower the cost.
Pricing a project accurately cannot be a 'guesstimate', based on loose assumptions that any unforeseen cost overruns can just be passed onto the client. When estimating software development costs, accurate metrics are crucial. These include quality assurance requirements, offshore sourcing variables, identifying reusable code components, factoring in the complexity of existing infrastructures and much more.
In cases where neither client nor supplier has the required level of expertise, a third-party specialist can help with cost projections, effort estimation, risk management advice and negotiations with providers.