Major bugs and workarounds
Imagine you have been given the job of installing AC vent ducts in a house.
Great. So you begin your work, starting from the basement for some reason. And there in basement you find a major fire outbreak.
Oh great. So you call your supervisor and tell him about the fire. He goes back and talks to other supervisors and comes back with the suggestion of what to do next: just do your job and get out of there as fast as possible. Hey, you are expected to finish the job by end of the day… and you gotta meet the deadline! The logic is: since your client has not complained about the fire, there is no reason to call the fire-brigade, do root cause analysis, or fix this particular fundamental problem of the house. Did I tell you that I, the vent duct guy, works for the same company that built this house a long time ago? That is immaterial.
So you go ahead and start installing the ducts and the ACs, and when you are finished fixing it in every room, you call the inspection guy.
Now he doesn’t know about the fire and he doesn’t care about what you did and the why and how. He carries a thermometer and all he does is set the regulator, and then measure if AC is able to maintain that temperature. And he is finding all kinds of problems in each and every nook and corner. And you are busy fixing it. Then when you say you are done, he goes and finds a problem somewhere else. Little does he know that there is a fire outbreak and AC is trying to cover the heat. He won’t even understand, actually, as all he his job requires is a table of checkboxes and a red pen.
The time is ticking. You were supposed to finish by the end of the day, and it is later afternoon and he is still finding one issue or the other.
Now replace that house with software and that fire with a major bug and your job of installing vent ducts with your job of introducing a feature that is now exposing that bug in one use case after another.