| Rewriting is so attractive. If the code has aged and is suffering from many code smells and anti-patterns, a rewrite becomes even more attractive. "Why should I spend all this time adding a simple feature to this crappy code??" But writing code is the easy part. Architecting a correct solution that meets today's business needs and can be built upon, as well as walking the data, users, and business workflows over to the new system, are the hard part. I've never seen it go smoothly. I want to see it happen, because I'm an optimist, but so far it's not gone well. |
The only times I see rewrites succeed (where success is measured by how often your customers notice you breaking stuff) is when there's a comprehensive set of integration tests to write against. That really seems to be the sole determining factor.