"Think twice before you start programming or you will program twice before you start thinking. " -- Unknown

@nixCraft OTOH, sometimes you have to do exploratory programming, figuring out if your mental model even resembles how the program elements fit together.

"Plan to throw one away, you will do so anyway."

@nixCraft You can substitute "programming" with almost any verb... 🤔
@nixCraft in situations, this can be a smart thing to do and be very beneficial indeed.

@nixCraft
In practice you can never think of all the decisions you are going to have to make in any non-trivial program.

I call my approach "Throw the first one away."

You will almost certainly end up doing that, so make it part of the plan.