After doing some fantasizing about the former, it helps me to switch frames and build the fastest, shittiest version of it. I have a TODO.txt file with what might come later, but I also have something working that I can learn from and/or get utility from. (For me, the alternative is constant anxiety about “what else could I brainstorm here?” (which is fun) and little in the “what did I accomplish?” (which is rewarding in a different way, but isn’t strictly as ‘fun’).
I know plenty of projects that will never ship because the author can think of new things faster than he can code. Coding is fun. Shipping, selling and supporting is work. Hence the (subconscious?) goal of never actually shipping.
Which is perfectly OK. But being self-aware enough to know this is happening is both useful and liberating.
Alternatively if your goal is to ship, then ship it already...