Friday, February 29, 2008

The sooner you discover a problem, the easier it is to fix it?

The last sentence (“it is better to think of the "cost" of the fix more that the ease to fix it.”) made me think of different concepts that are often confused leading to over simplified heuristics. Heuristics tend to become more far from truth as they become more popular and generic.Here are some concepts I could filter:

1-Cost of a defect: this is the sum of several other costs (2+3+4+5+6+7)

2-Cost of finding a defect: seems that usually the later, the easiest to find a defect. Finding it on specs may be hard, on working software may be easier but requires testing, on a client the cost is zero.

3-Cost of debug/fine tuning the defect: for instance, after a tester finds a defect, he will try to reproduce, see logs, etc to find out more about it before report it. I think when found on the design, this cost is zero; when found on integration testing the cost is low; when found by a beta tester or a client this cost may be higher (developers will have to investigate more)

4-Cost of reporting

5-Cost of the /harm/ of a defect: If found in the specs, it does no harm; if found during integration or system testing it may delay the tests are cause come entropy/confusion; if found by a client it may cause more harm to software factory image, or to the client’s service.

6-Cost of fixing the defect: the minimum cost is at the design phase; depending on the language it may cost more or less to fix it in the code; depending on the complexity of the system the cost may be quite high due to integration issues, for instance.

7-Applying/propagating a fix: may be zero for an in-house tool; may be high for a product sold around the world; But: note that even in this case the cost of propagating a specific fix may tend to zero, because there are already scheduled Service Packs (SP), introducing a fix in a SP may be automatic, SP distribution may be automatic as well, so the cost of propagating a single fix is almost zero!

8-Cost of verifying the fix: seems not depending on the time it is done
As sort of conclusion:-I would not use the word “easier” but the word “cost” as Paul Holland suggests-I would not stick to the over simplified heuristic “the sooner the better” without paying attention to the context, as James Bach said.

No comments: