Another infinity puzzle on software.
Every software written by a half-decent company would undergo a number of tests or reviews before it reaches the market or its intended clientele.
Imagine a scenario where you are the author of a piece of code. Once it is complete, you request your peer A to review it. A reviews it, points out some defects, you close those defects and send the code out to the market.
Things look good till your customers come up with a major bug. The fingers are pointed at you — the programmer. You then direct these fingers to A who had “signed-off” the piece of code. Your company’s quality team is all over the place asking for heads to roll. They appoint someone — let us call this person B — to review the review process that A followed.
B reviews A’s review process, points out a few things which A corrects, and things are all hunky dory again. Atleast till the next cycle of release of your programs. So A reviews your code again according to the inputs that B gave him. You again go to your customers with this newly tested code.
Two months down the line, there is one more major bug. The beating up starts again. Now it is the turn of B who had reviewed the review process. The head of the quality group — let us call him C — himself gets down to reviewing the work of B.
So, now you have a situation where A is reviewing your work. B is reviewing A’s review process and C is reviewing B’ review of the review process.
Can this go on for ever ? Will this chain be short-circuited anywhere ? Will there be a point where the company management will say — “Lets put a stop to all this and let us all start testing the product itself instead of reviewing each other’s work” ?