I can't even count how often i think i have everything planned out and then halfway through implementation realizing a much better way, or some case i didn't consider, or a different way to eliminate the problem, etc. This is true both when I'm writing code myself and when I'm driving Claude. I see coworkers just taking the first concept from Claude and running with it and you can really tell that skipping the thinking that goes on during the implementation step really has drastic bad effects on the final code.