Note that this can only work if you divide your code properly into modules (or sub projects), where you separate the often-changing code from the rock stable code (and anything in between). Then, you rewrite mostly those modules which are subject to steady change.
If you don't do this, you'll always have to rewrite the whole system at once, which becomes bigger over the years. So you would need more and more time and developers for each rewrite.
In contrast, if you manage to always keep the amount of code you want to rewrite at a reasonable size, this approach may become workable over years.
If you don't do this, you'll always have to rewrite the whole system at once, which becomes bigger over the years. So you would need more and more time and developers for each rewrite.
In contrast, if you manage to always keep the amount of code you want to rewrite at a reasonable size, this approach may become workable over years.