Not OP, but once you have a spec, it's much easier to code up. If you're designing while you're coding, you have to switch all the time between 'how should this work' and 'how do I build this'. Thinking and writing down how something should work, should always be the first step - regardless of whether you're on your own or in a big team.
(before the obvious objection: exceptions are toy programs which you write to find out how to build something, in which you focus on the technical aspects. The technical aspects ('how does it work') don't matter for the end user (= your potential customer), they only care about 'what does it do'.)