Modernizing Enterprise Software Applications: Successful Modernization and Risk (part 6 of 7)
Mitigating risk is especially important in modernization efforts. Where modern productivity-enhancing code environments lend themselves to fast results, be prepared for erring on the side of analysis and correctness where applicable. Particular areas to watch out for are:
Areas of the application whose business requirements are poorly documented
Opaque areas of code such as long stored procedures, poorly broken down methods
Reliance on specific third party solutions which might not translate well into the target technology stack
Disorganized code, especially in the front-end if identifiable patterns haven’t been followed
As with smaller refactoring efforts, the quality of test coverage directly affects the amount of regression defects that are likely to emerge from the work. It may be prudent to create broad sanity checks involving a large amount of sanitized real data to try to catch instances where old and new versions of solution code differ in what results they give. Explore creative ways to reduce the fragility of tests, for example in the way responses are analyzed or DOM elements selected.
Consider all ways possible to turn a wholesale cutover from old to new into something more iterative. These may include:
Keeping a legacy application working and decreasing its responsibilities gradually
Moving the navigation of the front-end into the ideal solution, and finding a way to serve the legacy content beneath it until all code is modernized
Using the potential for flexibility of messaging or dependency injection mechanisms to allow code to migrate from old to new