5 Stages of Bug Grief
The 5 stages of grief, or the Kübler-Ross model, was introduced in 1969 as a description of how people cope with grief and tragedy. It occurred to me that programmers experience a similar set of stages every time they encounter a bug in their software.
1) Denial – The stage that launched a thousand “Works for me” emails. After all, your code couldn’t produce that bug, it was flawless and you tested it. Or you thought about testing it, which is just as effective.
2) Anger – Providing a smooth transition from denial you begin blaming everything and everyone around you, and vague compiler errors only fan the flames. This stage is easy to spot, just listen for someone cursing out the compiler for telling the truth.
3) Confusion – Once you’ve calmed down and made your peace with the compiler, it’s time to realize you have no idea where the bug is or how to reproduce it. This is a good time to muss your hair and start muttering to yourself.
4) Depression – This one is optional, but if you start daydreaming about a different job or questioning the overall architecture of your application you’re in for a stay at stage 4.
5) Acceptance – This often occurs when you at last can repeatably reproduce the bug and have tracked it down to a line of code. It’s been a fun journey, but you’re ready to fix it and move on. This isn’t the time to reflect on the mistakes made in other stages, you’ve just made your software better! It’s best to close this bug out and move on to the next one.