In real life, you never have to stop to consider whether, for
example, the failure of gravity to operate as expected is a
possible explanation for some problem. In the realm of computers
and software, you’re dealing with abstractions layered on
abstractions, and in order to make progress on the higher-level
ones you have to believe in the lower-level ones. But in order to
debug things, you have to question all assumptions, at every level,
all the time. This is, psychologically, just plain hard.

[Jon’s Radio]