This is something I've come across in my own experience. If you don't actually have any experience in the problem space, the best thing you can do is make something that just barely works, then scrap it.
Then all the unknown unknowns become known unknowns and you can actually create good solutions to it.
All planning is a waste if you don't even know where the speed humps will lie.
It's basically a variation of Chesterton's fence[1]. There's a lot of hubris in thinking one could write a piece of code better than someone else if one has never attempted to write that piece of code, especially when never even having done anything like it at all.
Yeah, like to do the job properly you need someone who's done the same job before. Become that someone by exploratorily building the thing you want to build before you seriously build it.
Then all the unknown unknowns become known unknowns and you can actually create good solutions to it.
All planning is a waste if you don't even know where the speed humps will lie.