
Two weeks ago, I decided to rewrite our codebase.
It wasn’t a decision that I took lightly. I researched my options and consulted others. Opinions included:
- “Never”
- The rarely helpful “It depends”
- And the obvious “when the benefits outweigh the costs” (which is more helpful than it sounds)
Here are the most convincing reasons for when a codebase should be rewritten:
- The existing codebase requires software dependencies that are no longer up-to-date
- The existing codebase requires underlying hardware that is now obsolete
- The existing codebase requires hard-to-find staff
Here are some additional reasons that apply to complex codebases but not to simple codebases:
- The complex codebase no longer has staff to explain how or why it works
- The complex codebase makes it difficult to do even simple fixes or additions
- The complex codebase can be replaced by a new stack or tool that is significantly superior
