Progress and cleanup
My suggestion to my programming students is not to try to be perfect. Especially not on the first try. Instead of that mess around, make progress, but then later come back to your code and refactor it to make easier to read and to make it easier to make further progress.
The same seems to be true to other aspects of my own work. For example, I have many projects running at the same time and sometimes I can't finish a task before I need to switch to another task. It is not ideal. It is very far from being ideal, but this is what it is. Often I run out of the allocated time, or the day ends and I am too tired to finish a task. Sometimes more urgent issues take precence and that's the reason I cannot finish a task.
And that seems to be fine.
The critical part, however is that I regularily go back and "clean up my desk" so to speak. That means going over all the git repositories I have on my computer and finishing all the changes that are not committed or are in the the stash. That means going and refactoring code. That means clearing out thing from my real desk.
As I wrote elsewhere, the key isn't that every step will be clean and perfect and organized. Often you have to hurry, you make a mess, you do what many would all "quick and dirty". The key is that you allocate time to clean up.