This is an analogy about trying to find a specific bug in a codebase that has multiple bugs.

It is 1 am in the morning on a moonless night. A very important person has lost a very expensive ring. It fell into a pothole on a stretch of country road. Your task is to find it before 6 am.

There might be dozens of potholes on this stretch of road. In the dark some parts of the road look like they have potholes when they don't; other parts have potholes that are invisible at night.

The routine looks something like this:

  1. Examine the road with the flashlight to find the next pothole.
  2. When you find a pothole, look for the diamond ring in it.
  3. Repeat until you find the diamond ring.

To make it harder,

  • If you have checked a pothole, do not leave a mark on it; instead, write a note in your journal to indicate the  location and status of the pothole.
  • Some potholes have other diamond rings in them. If you find one, leave it there and write down where you found it. Describe the diamond in detail.

Go! You have until the morning. In the morning, pass the task on to the next person. Include your notes about your progress.