Yes Iteration is great. That is the reason I love TDD so much. You can iterate, nothing you write has to be perfect but continuous improvement soon creates something that is much better than what I would have made if I had set out to write something perfect.
I find this desire to create the ‘best’ solution often results in analysis paralysis.
Better is to strive to iterate.