There’s a general rule of thumb there. The change in a dataset is sometimes more interesting than the dataset.

How I debug problems:

  1. Binary search. Wherever possible, insert a test halfway through the process. Then you’ve halved your search space.

  2. Test your assumptions. I really believe that a good 60% of the time bugs hide in unchallenged assumptions. 80% when we’re dealing with “works on my machine” bugs.

    Example: “Ok, first we get the row from the db, then-”—“Can you prove you’re talking to the db you think you are?”

    These are very brute-force approaches, so

  3. Pair with someone who is less brute-force and more thoughtful (ok, I mean smarter than me). People with this style tend to think, form a hypothesis, and test it. That makes for understanding, but also unchallenged assumptions. Combining the two approaches gives the best of both worlds IMO.