In his book Antifragile, Nassim Nicholas Taleb writes: “Errors are rich in information”. Every time I fix a particularly tricky or interesting bug, I take a few minutes to write down some facts about it.
Suggested entry template:
Date: Symptom: Cause: How found: Fix: Fixed in file(s): Caused by me: Time taken to resolve bug: Lessons: Coding. How can I adjust my coding to avoid these problems in the future? Testing. What test case was missing? Debugging. How could I have sped up finding this bug? Did I assume too much? Do I need better logging in the code?