I don’t think I could possibly give a better example of how to methodically diagnose (and fix!) an issue.
Scott Hanselman had an issue firing of Microsoft Live Meeting and documents how he found the root cause. Absolutely brilliant.
He really has it all:
- Reproduces the issue
- Isolates the issue
- Gathers data
- Makes a hypothesis
- Tests the hypothesis
- Forms a conclusion
- Has a working system
In case it’s not obvious, yes I think troubleshooting/debugging should be performed using the “Scientific Method” as the pattern. Perhaps you don’t always specifically spell out your “hypothesis”, but you need to have one. Don’t spend too much time randomly poking around… methodically poke around. Each time you try something, you need to know what the result of that test will mean for you, and get you further along.
Update: Modified link to be direct, rather than via FeedBurner