Laying the ground rules for Legacy Code Modernization

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:

  • Do not be afraid to fail.
  • There is a need for education and training.
  • Developers must use the correct tools and they must learn how to use them.
  • There is a need for change management, which is change management in a development environment as opposed to a maintenance environment.
  • Try an unofficial project. Go through the modernization process with just a couple of programs. Perform a proof of concept (PoC).
  • Take small steps. There is much to learn.
  • Put a documentation process in place. Use wikis.
  • Determine the rules and disciplines for the modernization process. At the beginning of the process, the rules and disciplines are guidelines, which evolve into firmer processes.
  • Do not adhere to the same practices you have been using for years. Use agile
    development principles to deliver smaller projects that build on each other.
  • You need to do it right the first time. Otherwise, it can add to the expense.
  • Consider a “tactical” solution that can build upon your strategic goal.
{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}