My speed of development definitely increased and I think my quality of code did as well when I switched mindsets, from thinking "this is the last time I could be in this code, so make it perfect" to "I'll be back in this code at a later date, so do the good thing, but not necessarily the perfect thing". This was a difficult change to make, as I always aim for perfection in my work; anything less seems like a cop out. But with the former thinking, my desire to perfect things immediately because I thought I might not work with the code again often led to a lot of upfront design, and even analysis paralysis, as I'd agonize over the ideal way to write a piece of code. It had to be robust and highly flexible to handle all future needs, it had to perform well, and of course, it had to look good for posterity. As you can see, I was doing a lot of premature polishing and optimization—and spending an ungodly amount of time doing it.
But now that I have started to approach code with the assurance that I will be revisiting it at some point, probably sooner than later, I feel free to write things faster knowing that I can and will improve upon it eventually. I don't have to make the perfect design decision the first time, as I'll instead be making incremental improvements along the way, using the elapsed time to gain more insight into a better way to write the code. I just need to identify a good way to write it now but don't have to dwell on it, straining to find a way to do it better. Just keep it simple, remembering of course, that you ain't gonna need it. However, I'm also aware that since I will be revisiting the code, I have to keep the code clean and expressive, so constant refactoring and good test coverage are a must. I'm not advocating simply writing sloppy code as fast as you can, going with the first idea you have. You should still put thought into the code you're writing and have the discipline to write it well, but just don't get caught up worrying about making it perfect.
In short, don’t obsess over the ideal. Just start writing some code. Write it as well as you can now with the information and ideas you currently have, but know in the back of your mind that you'll return to this code again soon. So if it's not as good as you think it can be, that's okay. It eventually will be.