TL;DR -- You can't code your vision in to reality, especially when you work alone on something.
Having a new idea is exciting. You're sat on the toilet or in the shower and them BAM! That's it! Clear as day the future hits you in the face. Right, time to build out a prototype!
For me, this last bit is equivalent to setting my idea on fire. I might as well have had my epiphany and then forgot it. Weeks of coding will follow to "show people what I mean" so I can test the hypothesis and be a good Customer Development/Lean practitioner. I'm cutting the fat off the story (splash screens, pre-launch signups etc) but even so, I'm sure anyone reading this will be laughing in to their coffee. I don't blame you.
As a programmer, it's a really natural, comfortable thing to have a picture in your head and code it in to reality. Your pencil and paper is your text editor, your rubber is refactoring. For me at-least, this urge to engineer my idea in to reality is so poisonous that it kills everything. Coding is my enemy. At this stage, every keystroke is a nail in the vision's coffin.
Realising this came too late and after way to many mistakes, but it's a realisation nontheless and potentially an epiphany more valuable than any other.
Rather than code, refactor, "refine the idea", refactor, code, "refine", code, refactor... I'm instead taking a more sensible approach to refining/developing the idea in to reality. Coding only results in a tail-spin of tunnel vision that ends in a painful death for the idea.
Instead, by sitting down with some dotgrid paper (amazing UK product), a pile of sound advice in book form and insisting I'm "not taking any of my own shit", the best progress I ever made is happening. I'm stripping the idea right back to core assumptions and actionable steps to make it a reality. The intermediate steps are not something to code, or even remotely resemble the initial idea short-term (which is very scary) but as long as the vision is kept in mind it's the right approach.
It's (highly) embarrassing to admit this realisation, but by coding for so long you think the very first step to building your system to change the world is coding. It isn't and I should be so lucky to be at the stage where programming is the right next step.
... Feels weird not coding for weeks though.