Abbott-Unlimited
Abbott-Unlimited
“We make IT happen.”

Services


Blog


Is a Complete Rewrite from Scratch The Answer?

May 4th, 2016

Complete rewrites from scratch can be very difficult, risky, and should only be done with strong justifications and planning. A large, failed rewrite from scratch effort typically causes a huge amount of wasted time, resources, and missed opportunities. At worst, a particularly misguided or poorly managed one can ruin an organization, cost people their jobs, destroy morale, and burn out good staff. If the software works properly, is secure, and meets customer/business requirements then a complete replacement is more likely than not a poor proposition.

The rationale for a large, complete rewrite shouldn’t be based on the self-serving motivations of a few, obsessive devotion or loathing of a platform, or naïve thinking. For instance, a developer team wants to try out a bunch of new technologies and sees a rewrite as an opportunity to do so. This can be beneficial to the team members as it improves their résumés, but isn’t a great business decision unless there are serious problems with the system. Maybe an architect, developer, or team lead hates a particular technology or wants everything written with their favorite framework and language regardless of there being no serious issues with the product. Perhaps a team of inexperienced developers that decides they’re going to fix everything wrong with the old, working system that was written by a “bunch of idiots”. If serious thought isn’t put into the reasoning, it isn’t a good assumption that it will be done so at the planning or development phases either.

On the flip side, there are some reasons that could lead to strong justifications for taking on such a project:

  • The software simply doesn’t work. It’s fragile, full of bugs, and the customers/users hate it.
  • The system is very difficult to maintain, understand, enhance, and is increasing ill-suited to meet customer needs.
  • It is built on unsupported, dead-end, and insecure technologies that cannot be modernized without an extensive rewrite.
    Example: An unemployment insurance claims system written with a combination of VB6, ASP, BizTalk 2K, Commerce Server 2K, and SQL Server 2K.
  • The technology stack is making the product increasingly uncompetitive because requested features are impossible to support or require time consuming development when solid, pre-written libraries are available for other stacks competing products are using.
    Example: A Content Management System (CMS) written in classic ASP and VBScript.
  • It is not feasible to gradually replace portions of the old system until it is entirely replaced.
  • Critical, non-replaceable components of the software are subject to a cease and desist order due to a legal conflict with a vendor.

Software that is blighted with some of these serious problems can be a possible rewrite from scratch candidate. If you’re leaning in that direction, here are a number of additional questions to mull over when considering and planning such a project:

  • Do you know what the system does and how it interacts with other components and services? It can be a difficult and time consuming process to determine what a system does, and even with the best efforts functionality can be missed. This is especially true of codebases that lack tests and documentation.
  • Do you know how users use the system?
  • Is all of the functionality that has accumulated over the years really necessary?
  • Can the produce be replaced with a reasonably priced off-the-shelf solution as opposed to a large development effort?
  • Do you have, or can you get, buy in from the business or your customers? Do you know their thoughts about the current system you want to re-write?
  • What new value to your customers is being added as part of the rewrite?
  • Can you afford to support your current system while a new system is developed? If need be, can you continue legacy support after your new system is deployed to meet any necessary obligations?
  • How many missed opportunities could a total rewrite from scratch potentially cost you? How many is your current software costing you?
  • Do you have a fair degree of confidence in the team of developers that would working on the project and their experience?
  • Do you have a low enough rate of developer turnover that your rewrite team is stable?

Good planning, development staff, and organizational support are critical for a successful rewrite from scratch project. If done properly, your organization and customers may benefit for many years to come.

Additional reading material:

  1. When is a BIG Rewrite the answer? (programmers.stackexchange.com)
  2. How To Survive a Ground-Up Rewrite Without Losing Your Sanity (onstartups.com)
  3. When Understanding means Rewriting (blog.codinghorror.com)
  4. Rewrite Code From Scratch (c2.com)

Kendal

About


Abbott-Unlimited is an innovative company that builds both technical and business driven solutions for small to mid-size organizations. It specializes in helping businesses jump start their companies into the advancements of the new-age technology industry by offering development as a service. Abbott-Unlimited is designed to help originations get that new fresh start, or help aid and maintain an existing solution with senior level experience.

Whether you want to create a quick website for advertising, or are looking to develop an in-depth application that can help you cut corners on time consuming tasks, we have a solution for you. We work in the newest technologies available and our job is to design and develop an industry leading product that helps you stay ahead of the competition, and focused on an even brighter future.

Abbott-Unlimited LLC was founded in 2013 with the simple aspiration of offering senior level development skills as a service to organizations with smaller budgets, lack of skillsets in specific areas, or possibly just a shortage of man power. Abbott-Unlimited allows organizations to hire a temporary or longer termed development staff as contractors without the overhead of benefits and retirement. In turn, it allows the organizations to get a senior level team to complete the work for a much more efficient cost.

Contact Us


There is no one size fits all in the information technology industry. You need a company that will work with you to create a unique and efficient solution. Please feel free to contact us with us any questions, and we can discuss what option(s) may fit your company best.