Have to agree -- if I had points I'd mark you up for Insightful.
Debugging doesn't take alot of though -- sure, if you emulate the code
in your head -- which gets close to the work in designing but the way
most people do it (and I do it for most simple debug tasks).. is fairly low-brain power stuff. Hard problems -- they can be both a bear and
fun -- i.e. they are brain teasers.
As for the statement about being clever up front -- depends on definitions, but usually the more clever I am up front, the less code I need to write -- and there is less to debug. That said, clever up to and past the point of "obscure", ... it's not the debugging that is so hard -- it's trying to figure
out what the heck you were trying to do when you want to enhance or update it. For the most part, even on my own personal projects, I
try to write with long var names, and/or an occasional comment if something is unclear or not str8forward.
But a year or two after the fact in coding -- I look at it, and wonder, did I write this? Only because my coding style changes over time (not formatting, but idiomatic usage).
Also, on a real "project", I'll usually build in a debug framework as I code.
Code has to be able to be examined and testable. So hooks are usually needed.