Sometimes you start on something, and it’s a good idea. Sometimes it’s a really good piece of code that you are writing, and you know it as you write it. It does what you want to do, well. Then you start using it, you have created this really usable device. So you use it, and it does the job, and then you find you want it do more. So you have to add more, and rewrite it. You just want to get on, to do the next thing.
But the device, the software tool you have created, needs to be improved, refined, perfected first. .. But you just want to get on with other stuff. You can’t.