When I write code, develop algorithms or programs, I do them to the fullest of my skills – with all I know. Once I wrap things up, I know I did the work to the best of my abilities.
A year later, or even couple of months later (sometimes) revisiting the same codes or works, shows me see how lousy the work was. The future re-visitation allows me to adjust the code or even re-write them to a better, more efficient and logical way. This too will be dwarfed by another future visit eventually. Knowing the updated version’s dwarftation, should I have not bothered creating a better version?
However, if I did not write the code yesterday, I would not have the expanded realization of better version of the same code tomorrow. Today’s work must be there for it to be dwarfed by tomorrows work. It is an infinite continuation of the cycle for it to improve little by little, with an end no one knows when.