This only works if you've built the software to be a MVP vs. a prototype.
A prototype is something that you build and then throw away, a MVP is the minimum feature set that can be given to customers, developed with the same quality and values as your eventual product that can be expanded upon.
So be clear what your trying to built at the start, and make sure you build the right thing.
I think MVP ≠ prototype. To me prototyping is about the quality of the code, and MVP is about trying to find the minimum feature set.
I think it's a mistake to not throw away a prototype. You could be starting day 1 with so much tech debt that it would take longer to fix it all vs. design and develop an MVP properly in the first place.
I find that the real key is working with coders who can refactor one component at a time, without requiring a re-write from scratch. Then you actually can iterate on a junk codebase.