You don't get from zero to one by making a perfect plan and then following it. You get there by making a workable plan, starting on it, then re-evaluating constantly and updating the plan as circumstances change and new information becomes available. It's a constant process of error recovery and responding to circumstance in order to keep the end goal attainable.
The code equivalent would be refactoring as you go to keep your code maintainable at all times.
The code equivalent would be refactoring as you go to keep your code maintainable at all times.