Migrating Legacy Systems: An experience report on the industrial environment - Fonseca, Samuel Cristo da; Porto, Carmina Dessana Nascimento; Cruz, Eberth Felipe Castro da; Neto, Wilson Araujo de Oliveira; Tordin, Gustavo; Trindade, Rafael (Anais do Simpósio Brasileiro de Qualidade de Software (SBQS); 2024: Anais do XXIII Simpósio Brasileiro de Qualidade de Software, 2024)
Legacy systems, though outdated, remain in use due to their critical functions despite their restrictions to interact with newer technologies. These systems are often inflexible and fraught with issues such as deprecated dependencies, which lead to compatibility and security concerns. Migrating these systems to modern software architectures is both costly and time-consuming, with an increased risk of failure proportional to the volume of code involved in this effort. Often, companies may opt to retain these systems in their current state due to their critical nature, however, situations eventually arise where postponement is no longer viable, necessitating modernization. This paper presents a real-world case study of a comprehensive legacy system migration to contemporary software patterns, while simultaneously meeting new feature demands within the legacy system. Additionally, it explores a deployment strategy designed to mitigate potential issues associated with transitioning a highly critical system that must operate continuously. The migration process yielded significant benefits, including enhanced feature development, improved bug resolution efficiency, and facilitated the implementation of automated tests, ultimately resulting in a more robust and secure application. The paper also shares valuable lessons learned and provides insights into what to expect from a complete legacy system migration.