> code smells and revisiting architecture decisions
This is exactly what we're dealing with on top of shipping new features. An architectural decision that got changed 6 months later so the code had to be thrown out and re-written.
Don't blame the engineers, blame the architects. If you have any.
There is certainly a a balance to be struck. Are the code smells a structural issue in a piece of software that's supposed to be used and modified for a long time? Then those code smells endanger delivering the service in a medium term and should be addressed.
But are we talking about a one-time migration script or a fad mobile app? Then who cares, the service will be delivered regardless of the quality of the code.
There are people working in software who will _always_ want to refactor something into "clean code", no matter how many times it has been done before. It's just never going to reach a point where that person says "I'm happy with it, let's get back to building features". If you want to build features (at all!) then you have to sometimes tell that person "no, we're not refactoring this again".
> Professional software developers are performing a service for others. That’s the difference between a professional and a hobbyist or an artist.