In cooking, everything is planned down to the last detail. It’s all plan, then execution. It sounds like you’re saying, “Plan everything before you begin,” and that feels a bit at odds with software development. You can’t entirely plan the surprises out of projects.
It’s impossible to plan in such a way that surprises can’t happen.
The process of working on a project exposes areas that need additional research and planning.
Projects — especially large ones — aren’t fixed efforts. They’re processes.