Status Complete

Under what circumstances would you consider a complete rewrite of a legacy system to be the best course of action, as opposed to maintenance?

This comes down to how much technical debt the project has accrued and how much technical "profit" the rewrite will accrue. There is a cost for rewriting a system and a cost of maintaining it. The cost of rewriting is large up-front but could be small long-term if the rewrite is proper. The cost of maintaining can be small but generally tends to increase as the needs of the system evolves. A legacy system can have a high maintenance cost if it fails to scale to an ever-larger data base and workload. In general, legacy systems should be maintained for as long as possible. However, when I can demonstrate that a rewrite would produce technical "profit" in the long term over continuing to maintain, then I would recommend rewriting.