" Conventional wisdom holds that you should never rewrite your code from scratch, and that’s good advice. " Speaking as someone who has done a fair number of rewrites as well as watching rewrites fail, conventional wisdom is somewhat wrong. 1. Do a rewrite. Don't try to add features, just replace the existing functionality. Avoid a moving target. 2. Rewrite the same project. Don't redesign the database schema at the…
The reason to avoid rewrites is because they generally get cancelled, or they build the wrong thing. In the first case, you have a system that mostly does what you want, but it has architectural issues that make it hard to change. You plan a rewrite. You get buy in from management. But the problem is that the business still needs those changes. If your rewrite takes more than a few months, then you're still going to…
That completely fits my experience. If the new code is being used early and can grow iteratively while being relevant and useful, its gonna work out fine.
Having the codebases running side by side somehow is the best choice all around, if it can be managed.