There are many factors that can compromisesoftware developmentto the point
where investment loss and exposure to risk may dwarf the cost of
the software itself.
Imprecise client specifications, insufficient planning and
analysis, poor project management, continually moving goalposts,
unrealistically short timescales, weak quality assurance and
underestimated costs are all common causes of failure.
Faced with shrinking deadlines, spiralling costs and a need to
get the 'product' to market quicker it is often software testing
and the validation processes that are sacrificed. In our
experience, only 30% of organisations allocate a separate testing
budget when implementing new technology, even though more than 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 is certain of the real cost of failed software projects,
but in the US alone it is estimated to be upwards of $75bn 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
more than £50m.
Then there was the Federal Bureau of
Investigation initiative in the US 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 $170m. There is also the famous case in 1999 when a $125m
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 contains 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, 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 that defects or potential problems are identified, recorded
and rectified in the lifecycle, 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.
Paul Michaels is Director of Consulting at Metri Measurement
Consulting, UK
www.metri-mc.com