If You Didn’t Fix It, It Ain’t Fixed¶
This rule should be obvious, but sometimes changes or instrumentation conspire to mask a bug giving the illusion that it is fixed. Adding instrumentation can change memory layouts or timing, but it can’t fix a problem.
One should always understand what a fix does and why it fixes the bug. Otherwise, the bug is not fixed.
Here are some tips on creating fixes.
Apply your fix to a pristine version of the code (see git Reset). Ensure you remove debugging code (including debug printfs) that might combine to hide the bug.
If your failure is reliably reproducible, then your fix should reliably prevent failure.
Check that the bug returns when you remove your bug fix.