Is it ever a good idea to re-write from scratch?
Joel Spolsky wrote many years ago that a re-write from scratch was the single worst strategic mistake a company could make. He pointed to a number of notable failures that were re-writes from scratch. I believe his most salient points are You will have devoted a very large amount of development time to a product which will essentially have the same value as the product you are currently selling. You will not have resource to improve the features of your existing product and your competitors will overtake you. Even if you develop using all the best practices available such as TDD or BDD, have a wonderful QA team a live field tested product is actually likely to be more robust. In essence he implies that refactoring legacy code is always the best path to adopt. The evidence he provides albeit from pre-2000 is somewhat compelling, and in fact some very successful companies have stuck to his mantra of refactoring sometimes in unique ways. By refactoring I mean the process...