Oh, and don't be afraid to rip up and start again.
Well said. I just binned a PCB design I'd spent a week on, often that's the best way to get a good job.
Same with software, a few years ago due to some slackness on the backup front I lost a project I'd been working on-an-off with for a month.
After tearing my hair out for a while I realised it was a golden opportunity to do it better as there were many things I wasn't real happy with but not to the point I could face doing it again voluntarily. After a few days I was back to the level of functionality I had before the disk crash and had a better product.
The second time around you've already done most of the thinking, in both the above cases the redo took just a fraction of the time the original took, and the end result was much better.