The cost of putting right faulty software after it has been deployed far outstrips the cost of getting it right first time, so why do things still go wrong in software development?
By Paul Michaels,
There are many factors that can compromise software development leading to investment loss and exposure to risk that may itself 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.
with shrinking deadlines, spiraling costs and a need to get the “product” to market quicker it is often the software testing and the validation processes that are sacrificed. In our experience, only 30% of organizations allocate a separate testing budget when implementing new technology, even though over 70% of them recognize 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 (£35 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 computer 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 may 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 contain a margin of error, typically around 5%. At this point it may be deemed by both vendor and customer 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, optimize 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 that defects or potential problems are identified, recorded and rectified in the life-cycle, the less cost is consumed.
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 the client nor the vendor has the required level of expertise, a third-party specialist - - can help with cost projections, effort estimation, risk management advice and negotiations with providers.