There will be no "later".

One of the more peculiar things you often see in source code is when programmers write messages to their future selves.  In the shape of TODOs or even excuses for why the code is not done properly and how they are going to come and clean it up later.

I'll let you in on a secret: there will be no "later".  Most unfinished code is going to remain unfinished to the day it is replaced or becomes irrelevant.
 If you don't do it properly now, you are not going to come back later and put things right. You have just one shot at doing it right.

Because it is never a good time to get things done properly.  That green field on the other side of the release isn't there.  It is a mirage.  Because when you get there you are going to waste the first part of it on distractions, and you are going to spend the second part of it running around like a headless chicken with your ass on fire producing even more unfinished code in time for the next release.