The real reason rewrites to fix tech debt used to fail was that it took too long to get to feature partity & the goal posts moved constantly while you were on the rewrite team.
The sunk cost of existing code is no longer considered in a rewrite.
Maybe it was hard to write in the first place, but it is not hard to rewrite anymore, as long you've got decent tests.
> forcing function to clean up tech debt
The real reason rewrites to fix tech debt used to fail was that it took too long to get to feature partity & the goal posts moved constantly while you were on the rewrite team.
The sunk cost of existing code is no longer considered in a rewrite.
Maybe it was hard to write in the first place, but it is not hard to rewrite anymore, as long you've got decent tests.