Troubleshooting Rule #7: Poke it with a stick

At this point in the troubleshooting process, you’re starting to feel desperate, willing to try anything, even poking the problem with a stick. Do that. But don’t do it desperately, do it scientifically.

This step is where you can really get your right-brain, lateral thinking in gear. “Poke it with a stick” implies a certain random element, and that’s definitely present here. The point is, you want to test things you think you’re sure of, particularly things that are adjacent to the symptoms of the problem in some way.

That’s still a little vague, so here are some examples:

  • That variable/chip pin/wire voltage/API return value/div placement isn’t going where I want it to. Can I get it to go anywhere at all? Can I get the problem area to change in any way, even an irrelevant way or to a value that I don’t want?
  • Can I get something nearby to change - an adjacent pin, another API, a different motor?
  • Can I get something else to break in a similar way?

In order for this kind of flailing to be helpful, it has to be controlled flailing. Write down everything you do or change, including all the effects that you can see. Go back and forth between the original and changed versions if possible. Repeat experiments to see if their results are always the same.

Also write down potential stick-poking places - take a walk, nap, or shower, try to approach the problem from a new perspective, and when you think of something new and different you can do to the system, write it down, and then write down every variation you can think of, before going back and picking up the stick again.

Eventually, you’ll end up doing so much damage with your stick that you’ve already started to simplify your system, so continue there.