Before you write code you design (and/or architect) a system (formally or informally).
There's too little appreciation today for a well designed system. And the "premature optimization" line is often used to justify not thinking about things because, hey, that's premature. Just throw something together.
Like everything else there's nuance and a range of appropriate behaviors. It's probably worth spending some time beforehand designing the next mars rover's software but it's real easy to get, say, the design of an ai based program editor wrong if you aren't getting user feedback.
Getting feedback from users for a product is important as well. Those are somewhat orthogonal concepts. I'm not proposing analysis paralysis or no prototyping but I am saying there are some things that if you didn't consider in advance can become huge issues down the road. There are examples (e.g. Facebook or the Google crawler) where very successful products started with something not great and then were able to fix that later but I would argue most of the very successful products and platforms (software or not) have had some non-negligible thinking/planning upfront.
I mean, sure, but this becomes kinda circular, "do some planning" "how much?" "the right amount", etc.
I don't think anyone is arguing for zero planning but in terms of very general rules we can talk about on blogs and such, I would definitely advise people to "do more and think less" to paraphrase an old prussian general.
I would say overplanning is a much more common problem but the issues it causes tend to be much less noticeable than the occasional really exciting under planned project.