I like to remind people that if you wanted to get a new addition built onto your house, and the first day the guy showed up with all his workmen and they started cutting boards and banging nails while the foreman went inside to ask you what you wanted ... if as the days went on they built something and tore it down and built something else, obviously “just making it up as they went along” ... why, you'd throw that guy out of what's left of your house and call your lawyer! So why this sort of nonsense is deemed to be de rigueur in a software project is quite beyond me.
In software terms, we would call those workmen the compiler. I leave fixing your example to match the reality of both construction and software to the reader.
The trick is to truly design it, completely, first. Yes, all of it. (Oh yes, you can!)
Has that ever worked for you on a project that took longer than a week to complete? Yeah, me neither.