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.