Application Modernization vs Building App from Scratch — Choosing the Lesser of Two Evils

In the article we discuss the difference between application modernization and application rewriting and explain in which cases this or that option should be chosen.

In a dynamically changing software industry it’s just impossible to know all technology stacks, since they are constantly updating, and this process seems to be endless. And actually it is, let’s just take into consideration the past decade! There is a variety of technology stacks that have seen the world, each of them has its basic features and is applied for specific purposes. Now, if an application was developed with a currently contemporary stack, it won’t be a big deal to make some changes in the code. But it should be taken into consideration that some time later the stack, application was built with would become obsolete and would give a way to more recent technologies, so making adjustments in this app may turn out to be a real challenge. So what options do we have if there is a necessity to make changes in the already existing app? Let’s discuss application modernization and rewriting and try to figure out which one fits you better.

Option 1: Legacy Application Modernization

If you consider the frameworks that would be used for your app modernization, you may pay attention to Webix JavaScript library. This framework is a good fit for legacy application modernization, moreover, thanks to it, the expenses for refactoring may be reduced significantly.

Read also: Reducing Development Costs With Webix. Staying Afloat During the Coronavirus Outbreak

Pros of Application Modernization

  • Gradual Updating
    After you finish one piece of work, get down to another, you can take things slowly. Such an approach helps to preserve the stability of a legacy system you are working on.
  • Relative Flexibility
    An issue might be revealed in only one part of a legacy system, so developers may choose to refactor this problematic segment only.
  • One Codebase
    There is no need to create an additional codebase if you choose an option of legacy app modernization.
  • Costs
    Since you already have the written code and there is no necessity to build an app from scratch, costs for modernization are relatively low.

Cons of Application Modernization

  • Extensive Skill Set Required
    If you deal with refactoring, you have to be ready to face plenty of complex patterns and ambiguities, so developers working on the project should have a lot of expertise.
  • Obsolete Technologies
    Dealing with refactoring is normally equal to dealing with an old tech stack, so it may be a real challenge to find developers that are ready to work on such a project.
  • There’s No Escape from Testing
    It’s obvious that after refactoring the app should have the same functionality and meet the same business needs as before. And when there are hundreds of lines of old code, making correct adjustments turns out to be a real challenge. Therefore testing is an obligatory point for successful application modernization.

Read Also How to Understand It’s Time for UX/UI Modernization

Option 2: Legacy Application Rewriting

Pros of Application Rewriting

  • Acquisition-Friendly
    Dealing with lines of someone other’s old code, sometimes not of the highest quality — is it what you want to do? In case of building an app from scratch, developers that didn’t create the initial code would be able to complete such a task much easier, so this problem becomes irrelevant, which is another important advantage.
  • Old Mistakes are Kept in Mind
    Rewriting an application allows you to evaluate flaws and errors committed in the legacy system, which allows you to avoid them in the future version.
  • New Opportunities
    A decision made in favour of rewriting may open new market opportunities. A new market, new users, new technologies — all it becomes more real in case you decide in favour of application rewriting.

Cons of Application Rewriting

  • Lack of Updates
    Users do not receive frequent updates in case you are focused only on rewriting, which may lead to a decreasing level of users’ retention.
  • Only Better or at Least Equal
    Releasing an application with less number of features and worse functionality makes no sense, since your users do not expect any disappointments from the new version. But you wish not only to conquer the new market, but keep old users loyal as well, don’t you? That’s why the necessity to maintain the quality is a priority.
  • Cost
    Costs for recreation of the legacy application is derived from disadvantage #1 you have to accept — time required for rewriting.

So in Which Favour Should I Decide: Application Modernization or Rewriting?

The key factor here is a technical debt of the application. When there are hundreds lines of convoluted code, that makes the project almost impossible to work with, or if the technologies that had been used for the app are absolutely obsolete, it makes zero sense to deal only with modernization. That’s why it’s necessary to evaluate the project from all sides to make an informed decision and not to waste time on useless actions.

Conclusions

Originally published at xbsoftware.com.

#Outsourcing IT company with a focus on #web and #mobile app development in #ReactJS, #NodeJS, and JavaScript. www.xbsoftware.com