Background
With the rapid development of new technologies and approaches in software development, a new problem emerged - legacy systems. After years of development, the software begins to be harder and harder to maintain. It is also increasingly difficult to add new functionality to it. However, it remains crucial for the company to continue development.
The difficulty in maintenance can arise due to various reasons such as the inability to keep up with the latest updates, skills gap, or simply the inability to upgrade due to budget constraints. Experts grow older, resign or are unavailable to deal with the maintenance due to other urgent tasks. Newly hired developers are knowledgable in the current trends and would require an intensive preparation to be able to deal with the legacy system.
As such, legacy systems require modernization. Modernization is meant to close the gap between the crucial functionality of a system and its availability for maintenance for new developers working on large, legacy systems. Modernization requires high knowledge of the system in question, as well as a selection of an appropriate approach. This is harder to asses with the accumulated Technical Debt clouding the overview.
All systems have a tendency to accumulate what is called Technical Debt (TD). This is especially true for legacy systems, developed over a longer period of time. Technical Debt is a metaphor describing the added cost of rushed decisions made during the development process. This debt can accumulate and eventually lead to an increase in the complexity of the software, making it harder to maintain and update. As a result, it becomes crucial to address the TD, pay it back, and prevent it from accumulating further.
Problem statement
The literature on modernization proposes various terms representing the same modernization strategy. Due to this, it is difficult to discus the appropriateness of the approach with the relevant stakeholders, further making it more complex to plan the modernization.
Although there is literature meant to support the choice of the appropriate strategy, it often does not consider specific characteristics of the system in question. Upon every modernization decision, one should consider the circumstances of specific company and the system to be modernized. The literature does not categorize the approaches, mostly focusing on proposing new technical solutions, rather than analysing the field of modernization.
Finally, even though there are various proposed strategies, it is unclear how to apply them in practice. The existence of use case success stories proposes various views on the modernization of singular specific systems, not allowing to abstract it enough to use in practice for a different system. Unifying and characterizing the systems and corresponding approaches could support stakeholders in making the decision confidently.
Vision
In this research project a new approach shall be developed to support the stakeholders in making the decision on how to modernise their system. We want to investigate the modernisation “good practice” in both academic and industrial context. Based on this, we want to develop new approaches and identify the information needed to manage the decision process behind the modernization of any (legacy) system.
Potential related topics
- Modernization
- Legacy Systems
- Reverse Engineering
- Re-engineering
- Modularization
- Technical Debt