When is it a good idea to rewrite your system to new technology?
Grzegorz Papaj, 23 May 2019
There is no clear answer as to whether it is better to improve an existing system or write it from scratch in new technology. Each time the solution should be adjusted to the specific situation, taking into account both technical details and business issues. In what cases it is better to rewrite the application? Find out what should be taken into account when making a decision.
Usually, companies prefer to improve their systems instead of building new ones. Unfortunately, sometimes it happens that the software needs to be rewritten. This most often happens when the whole system is based on outdated technologies and when maintenance and development are significantly hampered or even slowly become impossible. In such situations, it is better to rewrite the system by the dev team or an outsourced team. In this way, a new solution will be created, with the same (or similar) functionalities, but working significantly more efficiently in modern technology and business environment while smoothly integrated with currently used systems.
What does it mean that IT systems are aging and when does this happen?
Every software development team creating a system knows that in all likelihood, within a few years at most, the program will get old and need to be rewritten. When does it happen? For example, when the system can’t keep up with changes in the business environment. In practice, this means that it does not interact with changes in the business model, other systems or technological solutions, or modern concepts (for example, it doesn’t support mobile technologies). Often a system that has become obsolete and needs to be rewritten is one that was written based on outdated technology. Newer versions of the technology are no longer created, which means that bugs are not fixed, and the software does not work on newer operating systems.
Trends are another aspect that affects developers. When newer and more attractive technologies are available, the developers are no longer interested in older ones. This leads to recruitment problems and difficulties with maintaining the system.
That is why the risk of losing the last employee experienced in a given technology is an important factor to consider in a company working with systems developed a long time ago. It can be almost impossible to find a suitable successor in this situation. But even if the company succeeds, it will certainly entail high costs. Such a situation is very difficult and should be avoided at any cost.
What issues should be taken into account when deciding to rewrite an old system?
First of all, the decision should not be made too hastily. Consider all the pros and cons to reduce the risk of potential threats. Here are few things that need to be considered before choosing between rewriting a given system using new technology or developing new, dedicated software.
Is the system business or technology obsolete?
Customized solutions which are not maintained age over time. If the technology is outdated, sooner or later there will be a need for migration. But there is still a choice between “sooner” or “later”. If the system is failure-free and you have a team who knows the system technology, there is no rush, you can easily start looking at alternatives for future use. But if it is failure after failure and the last specialist has just resigned, then it is time to immediately take action.
If the system is outdated in relation to the business model but the technology used is still supported, it is probably better to perform ongoing maintenance instead of rewriting the system. When problems arise, developers often blame the technology which was chosen by the previous team or the original supplier and say that is unknown and unclear for them. This couldn't be more wrong. Technology doesn’t create (or solve) problems. The responsibility is always on the people who might make mistakes in the design and implementation. Therefore, if someone tries to convince you to rewrite the system to new technology, be careful. It can be a sign of incompetence. In fact, the first step should be to fix the most important bugs in the original system. It will let you analyze whether upgrading is the best option or not. You risk relatively little and can gain a lot.
The availability of developers
Evaluate old and new technology providers. If you can easily recruit an employee or find a company that works with the technology, then you should not have problems with it in the future.
If experts are hardly available, then this technology is not a good choice. Well, unless it is a new thing – then, it may be worth waiting a little bit, as the market may be full of specialists in the future.
Let’s highlight it one more time. Such an evaluation has to be done in the context of the old (current) and new (planned) technology.
The cost of investment
Before making a decision, check the cost of maintaining the current system and compare it with the cost of building a new application. You need to take into account, for example, whether the staff of the IT department will be skilled to carry out the modernization, or whether you will need to outsource development.
Take a realistic time horizon: Do you want to solve the problem for one, five, or more years? IT systems do become obsolete.
Bear in mind that there will be bugs to fix in the new system as well. In all likelihood, there may be more. Do not forget that each innovation temporarily disorganizes the employees’ work.
Do bias and trends have an impact on you?
Despite semblances, current trends are a common motivation. Is the current system outdated or you just don’t like it for some reason? Do you like some other solution that makes your systems look behind the times? Does the system really need to be rewritten?
Remember that using newer technologies can be against your interest. Perhaps the better option is to make some changes and improvements to the old system?
Rewriting a system to new technology is sometimes a good idea, and sometimes a necessity. But it is practically always a huge investment. Therefore, it is good to decide after a thorough analysis, taking into account the current technological and business situation, costs, and the availability of specialists.
A new custom application is usually a tempting option, but sometimes maintaining the old software is a better option. If the current system is problematic and causes various issues, it is usually worth trying to solve them, even if you plan to rewrite it in the future.
Note that there are companies specializing in outdated or exotic technologies. It is usually much more difficult to find them in a market dominated by suppliers who work only with new languages and frameworks. Nevertheless, it is worth spending a little more time to make sure whether you can use their service or not. After all, writing a system from scratch is a major investment.