On Rewriting Software
Kevin Barnes has an interesting post about software rewrites. Here are some of the questions he thinks you should be able to answer “yes” to in order to proceed with a high chance of success:
- Do you honestly believe that if you rewrote it without adding any features the resulting code would be 33% smaller than the current code?
- Do you have a very senior sponsor who understands and believes in the project?
- Can you get enough resources (even on a temporary basis) to support development on the old code base while the new code is written?
- Is the project critically important to the company’s future?
- Can the company go without a major release of the product for half the planned coding duration?
- Do you have anyone on the team who has successfully rewritten a major piece of software before?
I find his list thought provoking for two reasons. First, like (all|most) programmers, of course I have applications in use that I would like to rewrite.