I have both experiences - it can be painful when I dont have time put away, distractions put away, and I need to have some investment in the project, some skill enough in the tools to not be stuck in documentation hell.
With those conditions it really is like a garden, slowly improving or changing things as you observe the need.
That being said, part of it is also appreciating the outputs of one's labor - not implying you don't - but I see many programmers who are only satisfied with instant solutions when the amount of work needed to solve any problem would be significantly larger, they get bored, and they walk away from the problem.
To me that's generally because the problem itself isn't interesting enough on its face to get the programmer to want to solve it, and frankly if it isn't interesting enough of a problem... who cares about solving it?