In an ideal world, I go to the gym 4 times a week, eat healthy, and code is self-explanatory. The reality is a lot of code is poorly written. Have you ever taken over legacy code — you have no clue how it works, the code looks like your spaghetti dinner last night, and you’ve been asked to fix the code? Grrrr! You’re certainly not saying, “we’ll I’m glad the former engineer saved themselves some time and didn’t write comments.”
I also find writing comments first (like test driven development) helps me consider what I’m about to write — have I fully thought out the problem and solution?