Our legacy code often comes along with a large number of interfaces and dependency injection and it's difficult to find where the code actually 'does something'. So the only way I can understand what the code is doing is by stepping through it in a debugger.
If I just try to read it, I end up half a dozen classes away from the method I'm trying to understand in no time.