Good Enough Today is Good Enough
The question of when to deliver is constant. Choose to provide a good enough solution as soon as possible. Compared to taking more time to offer a great solution later.
There will always be an endless list of things to work on. You won’t ever be able to finish them all. You typically start with the most important things. Progressing down your to-do list. Using this method, do not obsess over perfecting each deliverable. Work them into a state where they are good enough, and move on.
The time gained in delivering to users early is the gain in this paradigm. It’s a speed-quality tradeoff.
Taking that extra time to polish the solution into the best possible shape is not necessarily the best approach in the long run.
When it meets the requirement, deliver.
Move on.
Iterate over it if modifications or improvements are required.
Trading a bit of quality for speed allows you to work towards your global maximum instead of a local maximum.