Wójtowicz's rule: rewrite if and only if you want to build on different principles. Principles here means well-defined axioms (e.g. single-writer transactional DB, CQRS splitting reads from commands) that you can depend on 100% and use to make further architectural decisions — not platitudes like 'we will use clean code this time' or 'we will TDD harder'. When stakeholders ask a year into the work why you're still spending money, those axioms are what you point at. Without them, it is a retry (throwing things at the wall or handing it to a new team without the domain knowledge) or just a refactor. Stop calling refactors and retries rewrites and the internet debates would improve.