Around a decade ago, I took on a job with a sales firm that was enthusiastic about the contemporary trend of adopting complex CRM systems. The task was rather simple: understand the sales staff’s necessities, construct a web application to streamline customer management, and establish an effective inventory tracking system.
It became evident that an upgrade to the database structure was vital as the current software was incompatible with the management software utilised to handle client and warehouse databases. Regrettably, this implied that the intended resolution could not be realised. The server was inundated with various repetitive strings, resulting in the termination of the project.
We incorporated a mechanism to incorporate a chance arrangement of digits and letters before customer names to save demographic data. To guarantee the success of our plans, we needed to devise a way to incorporate these prefixes; otherwise, the management software would have been inept in loading the data. Regrettably, because the creators of the software had vanished, we lacked access to an API or any supporting records, and had to take care of the matter independently. Fortunately, we were able to handle the problem effectively.
In my software development lectures, I frequently discuss a warning story that emphasises the potential hazards that come with a firm’s choice to upgrade its infrastructure. Although computers have been in use for about half a century, the current idea of interlinked systems, extensive documentation, and straightforward coding techniques is fairly recent, and in today’s fast-paced digital environment, it presents a challenge.
Although Covid-19 was not the original motivation for change, it has undoubtedly accelerated the process. Lockdowns have been enforced globally, spurring businesses to become more nimble, flexible, and digital. Many firms are now reaping the benefits of altering their operating procedures in response.
What purpose does antiquated equipment serve?
It is uncommon for software engineers to encounter firms that are willing to embark on a complete overhaul of their software and infrastructure. Usually, they will need to rely on pre-existing systems and refine or enhance them. This is where the phrase “legacy technology” becomes especially handy.
It is apparent that providing an illustration is the most effective means of demonstrating outdated technology. Interestingly, during the early stages of the pandemic, New Jersey’s overburdened system necessitated the state to actively search for COBOL programmers. This is a programming language that is 61 years old, but still maintainable and upgradeable. Nonetheless, no educational institution will substitute the education of C++ or Python with COBOL.
Typically, companies are hesitant to forsake their legacy systems and software for three primary reasons. Firstly, they may adhere to the belief that ‘if it ain’t broke, don’t fix it.’ If the technology is functioning properly, it may be more cost- and time-efficient to preserve it, even if there are a few peculiarities to handle. Secondly, it may be easier to keep the current system rather than train employees on how to use a new one.
The second rationale can be characterised as a snowball effect. As more data is accumulated, and the system becomes ingrained in an entity, it becomes progressively challenging to contemplate replacing it. It is akin to transcribing a university notebook that is deteriorating and stained with coffee; there is too much valuable information stored within it to justify the endeavour.
Traditions that have been in place for a long time and the fact that these methods have been validated, thoroughly tested, and certified as secure have resulted in banks and government agencies utilising the same obsolete practices for many years. Introducing any new technology would necessitate undergoing a lengthy clearance procedure.
How should we manage antiquated equipment?
Regrettably, there is no simple solution. Depending on the situation, using technology that dates back decades may be either straightforward to implement or unfamiliar and unusual. Alterations may be reasonably easy to put in place when dealing with established legacy technology that has a robust support system. As a friend of mine often says, if more than a hundred people are acquainted with it, there is most likely a solution available on StackOverflow.
Collaborating with less commonly used technologies can be challenging since there are fewer developers who possess experience in resolving the same implementation concerns. It might entail a time-consuming procedure of reverse engineering, especially when dealing with custom software created before the early 2000s.
We must contemplate all possible alternatives when determining whether to upgrade existing technology with newer options or persist with what we currently possess. Numerous factors must be taken into account.
- Expenses linked with upgrading or substituting older devices or software
- Time needed for development
- Compatibility with current systems
- Expense of employees’ time dedicated to learning the new program
- Probable risks and consequences in the event of mishaps
There is no single answer that can be given. Nevertheless, it might become evident throughout the development phase that an enhancement to the current infrastructure is crucial.
We must keep in mind that the effectiveness of a system is merely as potent as its weakest component. Hence, enlisting the best front-end developer worldwide to create the most cutting-edge application serves no purpose if the back-end is supported by a server with inadequate processing power.
Contemplate thoughtfully and analytically.
Before you depart, I would like to impart one more tale. A friend of mine is a professor at a university that has been tardy in modernizing their computers, leading to numerous older desktops and laptops still operating on Windows XP.
When the pandemic hit, the requirement to move faculty meetings to Zoom resulted in disruption because older systems were incompatible. Prior to this, instructors had only needed to review emails and generate reports, making the transition sudden and the decision to postpone implementation unsuccessful.
Even if your first reaction to your developer’s proposal to upgrade legacy technology is to retain the current infrastructure, I still encourage you to take a moment to contemplate the matter carefully. Employing obsolete hardware or applications may result in higher costs in the future.