Iterations Are Bets
I’m a practitioner of continued iteration, a believer that perfect is the enemy of good. You need to start your project with something basic, solid, workable. Iterate from there to an MVP, and then grow it to a full product.
Sometimes, it doesn’t matter how many times you iterate, you never reach that point. I haven’t found a rule to objectively identify this is happening. In my experience, you get a gut feeling after enough iterations that there’s no further breakthrough in the horizon — and you still don’t have the solid baseline you need.
You suddenly accept that any further iteration will result in small improvements, and decreasing returns for your efforts gives you once certainty: you will not arrive at your target delivery date with your expected solution.
I write this not looking into the past with nostalgia, but after a long day. One of my projects ran into this fate. I know that I could push the project forward. But the project cannot iterate itself out of this path. In a year, even two, a reboot will be necessary.
When this happens, you have to remember to let go of sunken cost. The best thing to do is to turn the ship around quickly. Accept blame and review the steps taken with the new insight. You will find a past iteration that’s workable — and fork from there.