The Yo-yo

December 12, 2020

Perspective is a critical piece of debugging difficult problems.

My natural tendency in debugging, and I suspect the tendency of most developers, is to keep digging deeper into the details. It is easy to start debugging “the status API didn’t return the correct result” then days later ask yourself “could there be an every-third-leap-year daylight saving time bug in Glibc 2.31?”.

The problem is not thoroughly investigating the potential root cause that led to such a question. That’s the correct approach.

The problem is forgetting to return your perspective from those intricacies back up to the high-level problem statement of the bug. Stagnating in the details of an investigation overwhelms your ability to debug effectively. “Digging deeper” becomes “buried under.”

Pause and think specifically about the actual problem, then take your search back down into the depths of the code once more.

You cannot stay locked into either perspective. If you stay high-level, you will never solve the bug. And if you stay low-level, you will waste a lot of time (and probably never solve the bug). So do both.

Be the yo-yo.