Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is it more costly to discover a defect later in the process? [closed]

Why is it more costly to discover a defect later in the process?

I've heard this a lot but I struggle to understand and put context/examples to this.

like image 363
rid00z Avatar asked Aug 26 '09 11:08

rid00z


3 Answers

You're building a house. You're laying the sewer pipes into the foundations, but unknown to you one of the pipes is blocked by a dead hedgehog.

Would you rather find out:

  • Just before you pour the concrete
  • After the house is finished and the new owner tries to use the toilet?

(There's a "Stack Overflow" joke somewhere in this analogy . 8-)

like image 82
RichieHindle Avatar answered Nov 15 '22 13:11

RichieHindle


The longer it takes to find a bug, then:

  • the more the behavior of the bug may have been accepted as correct, and the more other things may have become dependent on that behavior (Windows is notorious for this).

  • the more tightly integrated the system is likely to have become, and the harder the bug will be to extract.

  • the higher the likelihood that the bug's erroneous behavior will be duplicated elsewhere by virtue of copy-pasting or in clients that use the erroneous code.

  • the longer it's been since the code was originally written and the harder it may be to understand it.

  • the less likely it will be for people who understand that original part of the system to be around to fix it.

like image 27
John Feminella Avatar answered Nov 15 '22 12:11

John Feminella


This can be illustrated in a simple (if not trivial) example.

Take a simple dialog with a message and just two buttons "OK" and "Cancel".

Assume that the error is a spelling mistake.

If this is found after the product is released then a new version of the product has to be released with all the costs associated with that. Manuals will need to be reprinted.

If this is found in final testing the manual will have to be reprinted. The code will need to be rewritten and tests re-run.

If this is found during development then there is just the cost of fixing the code.

If this is found during design then the code is written correctly first time - no cost.

like image 24
ChrisF Avatar answered Nov 15 '22 14:11

ChrisF