$ zimbatm

Bisect Debugging

Debugging problems are rarely thrown our way at times that are conventient to us.

The product launch is tomorrow and some obscure error is keeping the developer awake many hours past curfew.

TODO: insert more debugging scenarios in here

What if there was an easy way to approach debugging?

Bisect debugging

What if…

The debugger is usually faced with their own code, so they must first be faced with they own falliability. Negative emotions impair the debugger’s judgement and can also lead to procrastination (procrastination is an emotion management issue). This is a long struggle and the best way I found so far is to make debugging mechanical enough so that not too much thinking needs to be involved.

The secret is to apply this simple formula: apply bisecting to all debugging problem. The nice thing about binary search is that it’s guaranteed to find the problem in O(log N).

 _____
< EOF >
 -----
       \     (\/)
        \   (_o |
             /  |
             \  \______
              \        )o
               /|----- |
               \|     /|