I believe more in the latter school, though of course, they are both extremes and I'm a moderate. The mud is unavoidable and we might as well build winches to pull ourselves out rather than spend time trying to carefully avoid it.
But even this definition feels too confined. There have been some developers I worked with that must have started out this way and then learned 'engineering' practices. They were all exceptional to work with. I wish more of this group could get to that level. Hence my interest in putting bread crumbs on the path to learning, rather than yet another pill to lose weight fast.
Debugging is as close to experimental science as we get in computer science. It is the act of understanding a complex system, and even if we built that system entirely by ourselves (unlikely), it eventually "gets away from us" and takes on a life of its own. It is impossible to understand everything, and debugging is a great way of allowing us to forget details and uncover them later.