Starting a modernization project can be a daunting prospect and it is easy to be overwhelmed by the options and amount of information that is available. This is the stage at which most people falter: it is easier to stick with what you know as opposed to embracing what is new.
There is also the challenge of having to maintain the existing application while it is being modernized.
The scope of a modernization project, the importance of different options, and the structure of a project depend on the resources that are available and the goal for the result. There are enormous differences between the choices that are available to a single-developer shop and a hundred-developer shop. Usually, you must be selective about what is modernized and how modernization is achieved.
There might be more benefit from modernizing code as opposed to starting with the database or vice versa. Choices about the usage of new languages depend on the availability of training or programmers with the required skills. The need for a defined change management process varies greatly depending on how many programmers are working on the project. There many terms and conditions that apply.
It can be helpful if there is a single plan that can be applied to all modernization projects, but such is not the case. The process is different for every shop and every application.
Although every modernization project is different, there are many ground rules and circumstances that are common to all of them.
Here are the basic principles to apply to all modernization projects: