6 stages of debugging: 1. That can't happen
Back when I started at Relic Entertainment one of the senior programmers had a printed list in his cubicle of “The 6 Stages of Debugging”.
The first item made me laugh. It was “That can’t happen”. We probably know someone who has reacted that way. (I have)
When writing software, it’s tempting to think that we can hold everything in our heads. It’s tempting to believe we are certain of all possibilities.
But our memories are fallible, we’re building complex software, with complex frameworks, languages, toolchains, running on operating systems, in virtualized environments, etc. It’s complex!
What’s worked for me is to keep an open and curious mind. Sure, sometimes a bug report is a misunderstanding (UX bug perhaps?). But as I’ve built more and more software and systems over the years, I continue to come across strange and unexpected issues that turn out to be real bugs.
See you next week for stage 2!