- You code a proper loop iterating with "i".
- Programmer 2 adds 50 LOC.
- Programmer 3 adds 100 LOC.
- Programmer 4 drops a level, but since he doesn't see the whole routine (too many LOC for one page or one screen), he uses a global "i" again. But nothing breaks because "i" is always 0 in both levels, both in testing and in production.
- Data changes and it breaks. You get the call, "What's wrong with your program?!?"
That's why you should have never used "i" in the first place. Call it "SkuNdx", "RecCtr", "ClassNbr", "Ctr1", anything but "i".