A great post from Daniel Lemire on The secret to intellectual productivity.
It reminds of some of the best advice on writing a good essay: create a rough outline and then start writing! Plan that you will re-rewrite or revise most the first draft.
This same principle also translates quite successfully to software development. Break the project down into small, well-defined chunks with clear responsibilities and functions. Getting these pieces build creates code that kind-of, sort-of works. Then you can redesign and reshape, adding layers of functionality and flushing out details based on what you learned building the 'draft'. This follows the principle of "Plan to throw the first one away, you will anyhow" from Brook's Mythical Man Month. Just don't put too much effort into the first one. ;-).