Moving an organization’s IT systems from outdated or obsolete software and systems can be one of the scariest, most complex processes an organization can undertake. Often the sheer immensity of the task prevents managers and business owners from pulling the trigger on such projects and they would rather “make do” with the existing systems despite its limitations. EACOMM Corporation over the years has encountered dozens of such projects and there are several factors to consider when undergoing such a transition to ensure its success.
It is normal to find large or even medium-sized businesses to have existing databases with content numbering in the millions. Some systems require access to historical data as well. While there would be fewer headaches if an IT project will go live with an empty database, this is rarely viable when a legacy system is already in place. Hence the inevitable task of Database Migration must be undertaken. With years of use and “patching” these databases are sometimes too slow, unwieldy, and inefficiently designed. It isn’t rare to see databases still running on MSDOS-based systems or using legacy databases like FoxPro. Migrating relational databases to newer versions tends to be straightforward assuming the original database design is sound. Otherwise, database normalization and redesign would be needed. Another option is to utilize noSQL/non-relational databases which can simplify the migration process but factors such as scalability and query speed must be considered. Whichever migration path is selected, the project managers need to ensure that ample planning has been made to ensure that data is backed up correctly, data is secure, the data relationships are all intact, and ample testing on queries (especially high volume/complex ones) are done before completing the transition. Furthermore, the project managers must have a thorough appreciation of the organization’s data utilization and existing business processes to ensure that any database redesign will benefit the organization.
Software System Migration
Upgrading legacy software to up-to-date systems considers numerous technical and non-technical factors to ensure the success of an IT Project. User experience and user interface design must take into account how end-users utilize existing systems while still making sure the new system takes advantage of the latest technologies to maximize the efficiency and user-friendliness of the software. Users must feel comfortable and familiar with the new software while also improving on the features, workflow, and security of the old one.
Process improvements and changes should also be considered to maximize the return on investment for the new system. Older software will most likely be desktop-based, with no means of remote access. Given the rapid adoption and acceptance of work-from-home/remote work modalities, any new software system should consider remote accessibility not only for laptops but also for tablets and mobiles. Even in an office setting, more and more organizations adopt a hot-desking setup where employees have no permanent workstations. Given the above, it is clear that server-based software using web-based technologies is the best path forward for modern systems.
Technology is ever-changing and improvements are always around the corner. Hence, systems must be designed around the expectation that specific modules and features are bound to be upgraded and improved eventually and such modifications will not entail a complete overhaul. Utilization of application programming interfaces (APIs), “black box” design, adopting microservice architecture, and other best practices allow future upgrades to integrate with the current system with minimal need to understand its inner workings and source code.
Legacy systems would typically reside in on-premise servers or in individual desktops. Upgrading infrastructure would often mean upgrading these to virtualized environments either still on-premise or in the cloud to maximize redundancy and reliability. Usually, the most important decision to be made by the organization would be to either continue hosting their software systems themselves in servers and data centers they own or move their systems to the cloud. Investments in on-premise infrastructure would mean higher capital costs plus the resources to regularly maintain, secure, backup, and support the infrastructure. Moving to the cloud would imply little to no capital outlay in exchange for monthly fees paid to cloud providers. Cloud-based systems are simpler and do not require as many technical support resources for the organization but run the risk of security and privacy issues especially if they choose to host in a cloud system in another country. Larger cloud-based systems also will run costs that will eventually surpass the capital outlay needed for an on-premise solution. For organizations with legitimate privacy and security concerns or those that need large infrastructure, a hybrid model is often best, wherein the bulk of the storage and processing is done on-premise while a cloud-based system is used for system redundancy and for publicly accessible applications and systems.
The final but often neglected aspect of migration from legacy systems would be the users of the system. This is aside from the obvious tasks of creating user accounts, passwords, etc. The main challenge here is to establish a “buy-in” from the end-users of the system.
An organization’s system of processes often passed through years of trial and error to be perfected. legacy migration can sometimes challenge or even disrupt the system. In the planning stage of the migration, it should be decided if the objective is to improve the processes or use the existing and time-tested procedures. Ease of use is a potential issue on why migrations from legacy systems fail. It is a norm that when a company transitions, its employees will complain about having to do additional work to use the new and supposedly improved system. Involving the end-users in the planning and implementation of the migration have two benefits. One, they will have ownership of the project as being an active part of the transition. Two, they can propose new features to make their processes faster. An IT implementor must always stick to the main objective of the migration; to make the system faster and more efficient.
End users are accustomed to the existing legacy systems and convincing them that a system upgrade is to their benefit is easier said than done. Valid concerns such as the need for user and technical training can be aggravated by concerns of obsolescence of user knowledge or even the outright redundancy of employees. Change Management best practices must be implemented to ensure the smooth transition of the organization. Continuous and ongoing technical support from the IT system implementor must be present, possibly over several years, as it is naïve to assume that all features and needs expected of the new system can be captured over the course of system development. The availability of easily accessible and knowledgeable IT support be it remote or on-premise significantly accelerates the adoption of the new system processes that the organization is adopting.
Legacy system migration is replete with challenges. Inexperience, lack of business/organizational knowledge, and inability to manage the transition of users and data, are just a few of the risks present in such projects. Attempts to conduct a system migration using available in-house IT personnel, while tempting due to the knowledge of the business process, is often too daunting as the IT staff have their daily tasks and jobs to consider aside from the gargantuan task of developing new systems. Availing of outside assistance from an established software development company with strong experience in such projects that can work closely with in-house IT personnel, managers and end-users is the recommended approach. In selecting an appropriate system provider, an organization should not only consider the cost but also the business/organizational knowledge, experience, and willingness of the IT provider to not only work on the IT system but to continuously support it over the coming years.