This post truly reflects what every professional developer goes through irrespective of technology. We should consciously evolve an approach that is less frictional for ourselves to make progress consistently. TDD is one such approach. However, it is geared more towards writing production code, after we have some structure in mind. Almost all of the content we come across geared towards writing production code. Prototyping is an art by its own right. It is also critical art for every professional developer to master. Being a perfectionist (trying hard to recover), it is harder for me to prototype. So I am always looking for material to learn this skill.
Thanks for this wonderful post.