Even though I admit I, too, am tempted by the joy of greenfield projects -- for pragmatic reasons I'm far more in favor of "work with what you have; renew, renovate, and refactor from within incrementally" rather than "throw the baby out with the bathwater, and start fresh".
I started writing software in 1984. Over the years I worked with many languages, technologies, and tools. I have been in leadership positions since the early 2000s, and in executive roles since 2014.
I've seen the same pattern time and time again.
In my opinion, where things go off the rails is in Phase 1. The allure of "Let's rebuild it! Everybody agrees."
It's tempting. It's appealing. It's exciting. I've even seen it done successfully.
But it is extremely high risk.
Robert Martin's Chapter 1 of Clean Code and Joel Spolsky's post Things You Should Never Do discuss how dangerous such a decision can be.
Even though I admit I, too, am tempted by the joy of greenfield projects -- for pragmatic reasons I'm far more in favor of "work with what you have; renew, renovate, and refactor from within incrementally" rather than "throw the baby out with the bathwater, and start fresh".
Yes! I completely agree.