Programming based development is an evolution kinda process, I know from experience that you can program something functional and cool (after some indeterminable amount of suffering with documentation) and then later on you will probably need to touch up on that older code and it somehow no longer makes any sense why you did it that way.
So you end up wanting or needing to just redo that part to make it way better, but then anything else that was linked to that old code also becomes broken and incomprehensible. Really annoying.