I studied computer science in college, so I like to think about the parallels between programming and writing: your work must make sense both in broad conceptual terms (algorithms, plots and structures) and on a more granular level (code, sentences). Innovations can happen on either or both levels. But it always takes more time to go from one to the other — at least, that’s my experience.
Some writers build their pieces from the ground up, then step back and refine the structure after it’s already emerged. Others have to know the structure before they start building. (Of course, both paths can cross into one another or go off-road entirely.)
One of the things I always liked about programming is that there was a point when you were just writing code, using a language you knew and structures you’d already identified. This approximated grunt work at times, and it’s why modular programming techniques aim to up your efficiency by developing “libraries” of reusable code structures. And it may be a measure of my lack of sophistication as a programmer — or else it’s a “grass is always greener” thing — but I look back on that time somewhat wistfully and think, I wish writing were more like that. Instead, it takes constant vigilance to make sure each idea is expressed in the most clear, compelling, and effective way possible.
I guess that’s what debugging is for.