When testing, you always take a step back and look for the root cause of the problems you are facing. Is the performance problem I'm seeing caused my allocation patterns, memory load, the wrong algorithm being used, cache misses, extra shader passes where none should be, etc.?
It's also handy to go back and search for root causes for things outside of software. For example, the root causes for the current financial meltdown (easy credit) predate the current administration to the Clinton administration and banks combined pressuring Fannie Mae and Freddie Mac to reduce their lending criteria. The reasoning seemed relatively sound but the execution wasn't, and the lack of oversight led to things crashing around our heads.
I'm all for bashing Bush...he's a horrible president, an inept commander-in-chief, and a pathetic excuse for a human being. But credit should go where credit is due.