• MEMBER POST: When to do a Software Rewrite

    It’s inevitable—there is always some part of the company’s code base that your development team would like to see redone. Maybe the codebase is messy. Maybe it’s hard to understand how some obscure feature is actually working. Or, maybe your developers want to try out a new language or framework. Whatever the case, whether or not to rewrite your software is a question that comes up at one point or another in most organizations.

    You may think that rewriting a piece of software will make it easier to maintain. I’ve often heard the complaint, “This code is garbage, the person who wrote this had no idea what they were doing.”

    That may be the case, but more often the original constraints or requirements for the program or feature simply haven’t aged well. Customer behavior evolves. New technologies emerge. Business processes mature and needs changes. Your software needs to keep up! In this post, we’ll walk through the factors that may point to the need for a complete software rewrite so you can make an informed decision for your organization.

    Why are you considering rewriting your software?

    I’m not saying that a rewrite of your application is never the answer. However, it should be used judiciously. The factors causing you to consider rewriting code can be an indicator that something serious is wrong in your organization or development team—something that needs an entirely different solution.

    If you can identify why there is a belief that your code may be in need of a rewrite, you can better identify and understand the real problem. Take a particular feature that has become so cumbersome and difficult to maintain that no one wants to touch it, for example. Discuss as a team how you reached this place.

    Is it that no one is taking ownership of this feature?

    Is no one reviewing change requests to the code? Are code solutions not being thoroughly discussed?

    Is your marketing team changing its mind on the feature every couple of days, driving updates in different directions?

    If these are the issues you are facing, rewriting your software won’t solve them. Unless there are substantial changes in those areas of the business, you will end up back in the same position you are in now—you’ll have new code, but the same old problems.

    Now, you may identify and flesh out the problem and still decide to rewrite your software. Or, perhaps after you’ve unearthed deeper issues, you’ll find that a refactor is the better answer. In either case, you will have made an informed decision.


    Michael Stevens, Sr. Business Development Director