The True Cost of Rewrites
"We'll do a rewrite, simplify everything, get rid of all the edge-cases."<p>Guess what? It turns out that all those edge-cases were there for a reason. You needed them. And by the time you've added them back, or equivalents, two things have happened. First, you've burned an order of magnitude more time than you budgeted for the rewrite. And second, you have a codebase every bit as gnarly as the one you started with.<p>First rule of rewrites: don't do it.
Second rule of rewrites (for experts only): don't do it yet.