I can't really agree with this. I design and build very large scale systems. We don't use UML, but it's possible to rigorously design and plan without UML.
Our designs are typically made of JSON data models, operations that take and return those models, and sequence diagrams that show the temporal relationship of the operations. It's not fancy, but it's dead simple, still pretty rigorous, but not too rigorous. Our implementations end up looking pretty much exactly like what we planned (even though they aren't actually JSON), and anyone can read and understand them.
Sometimes we build critical systems that require very rigorous design, to the point where we use TLA+ to catch design flaws. And sometimes it's just some internal UI and we slap together a bunch of random stuff haphazardly. And various degrees in between. I wouldn't characterize the "best practice" as "never design", it's more like "design, but not too much". UML is usually "too much", or places the focus on things that don't really matter.
(Note, I don't have much experience with UML, I dipped my toes in it a long time ago and ran away screaming.)