One of my rules for debugging programs is "the fault is never where you think it is". This is because if the fault was where you thought it was, you would have fixed it by now. The fault isn't where you think it is because one of your assumptions about the problem is wrong. So I begin by checking all the assumptions I am making. Starting with "Am I running the program I think I am?" and going on from there.
I was reminded of this when I set out to find the source of a rattle in the sound system in the car. The nearside rear parcel shelf speaker was making an unholy death rattle in time with the bass notes in the music, and it was getting worse. So, armed with a bunch of screwdrivers I thought I'd go out there and frighten it into submission. I assumed that either something had fallen down the slots above the speaker into it, or I'd broken the cone by playing too many "bangin' choons".
So I set some music playing and sure enough, there was the rattle. So I spent a few minutes trying to find out how to get into the rear parcel shelf and listening carefully and came to an interesting conclusion. There is no speaker in the rear parcel shelf at all. The speakers at the back are in the doors. Well, how was I supposed to know? I've only had the car three and a half years....
Anyhoo, in the door pocket I found a happily rattling five pence piece. So, I now have rattle free music and I'm five pence up on the day.
And I remembered to take my camera with me today.