Debugging other peoples' code

I spend a lot of my day debugging other peoples' code, be it the code of my customers or code that Microsoft's developers have written. I also spend a little bit of my day writing and debugging my own code. I would say, on balance that I prefer debugging other peoples' code and that it is harder to debug my own code, at least when it comes to those gnarly hard to solve problems.

I think that is because when you debug someone else's code you are making fewer assumptions and are focused on the specific nature of the problem at hand rather than thinking about the rest of the application you are trying to develop when working with your own code. Of course the downside when debugging someone else's code is you don't necessarily understand what it is supposed to do, how it was supposed to work or why they wrote it that way!

I came across a quote from Albert Einstein which sums it up nicely:

"We cannot solve our problems with the same thinking we used when we created them".

Anyway, I'm off to debug something, anything.