Honestly, reengineering feels like patching something old and hoping it holds together. New software may be a bigger jump, but it starts cleaner and avoids carrying old mess forward. I just don't buy that fixing the old thing is the safer default.
The other side's clean-slate appeal is real — nobody enjoys patching legacy code. But that argument skips something: an old system encodes years of business rules nobody ever wrote down. A rewrite looks cleaner mainly because you haven't discovered those rules yet. You find them when production breaks. Reengineering preserves that knowledge and targets the parts that actually hurt. The real third way isn't old versus new — it's reengineer the core and replace the edges. Framed that way, "new software is better" is just too blunt to be a strategy.