tags:

views:

67

answers:

4

if a small proportion of software errors turn into software failures; is it necessary to make investments to eliminate software errors?

A: 

Of course necessary...

Himadri
+1  A: 

Depends on who you ask, a developer will say yes, a manager/bean counter will look at the cost the failure causes and compare it to the cost of fixing the error

Fredrik Leijon
A: 

Depends on if the investment to eliminate the errors would be better value than to suffer the software failures.

ho1
@ho1 I believe, software failures will cost higher, may be not at this time but in future the same error will cause a big software failure...
Himadri
@Himadri: Depends on so many factors for different projects, and usually I, as a developer, do not know most of those factors. Might be that a bug takes 2 days to fix if fixed now or 2 weeks if fixed later, but every day the system is delayed the company gets fined x (where x might be 10 or 100 times my daily rate). And also, by the time that the bug gets critical, maybe there's a new system in place so the buggy one can be decommissioned.
ho1
@Himadri: I agree with you in general though, just that there's always so many special cases.
ho1
+1  A: 

The issue is that software errors can be detected earlier than software failures, so they are much cheaper to fix.

(It is estimated that) there is a factor of 10 in the cost of finding problems at each stage of development.

Software errors detected by e.g. static analysis, early during coding, are so much cheaper than software failures during Testing, or customer deployment, that it is worth fixing 100s or 1000s of software errors, in order to avoid 1 software failure on a customer's machine.

Douglas Leeder
I did +1 on your answer, even if it implies that testing is done after coding. Not doing that is the main point of TDD (test while coding, or even test before coding). However the underlying motivation is still the same, lower the cost of late detection of failures.
kriss
Thats testing not Testing :-)
Douglas Leeder
"Testing" is what happens after the developer has finished and before it goes to customers :-)
Douglas Leeder