Full rewrites are dangerous, especially if you insist that the new software is going to match all of the features of the old software.<p>In particular, if you have some old software that has been in production a long time, you will probably find out that it is doing things that you don't know it is doing.<p>Refactoring is usually the way to go. Often a small amount of effort can address many of the worst pain points.