I’ve had this conversation:
We need to increase our velocity! Has the customer told us yet what they would like us to build?
You can fix it later, but that doesn’t mean you’re going to.
Oh, they can, they will just force some other poor programmer to read your code and figure it out. A profoundly miserable process, but someone is willing to do it.
mmmm spaghetti code
“Boss, most of the bricks we have are broken in pieces. We can’t build the wall per specifications.”
“We have a deadline, get it done however possible by the end of the day today.”
This applies to lift-and-shift migrations too. “We need to migrate this now, let’s fix it as a next phase”, then it never gets fixed; instead of taking the opportunity to fix stuff as you build on a clean slate.