Applications are like living beings. As they grow, processes, people, and other systems start to build around them. There is more than code in a modernization project and you must prepare accordingly.
The main objective of this phase is to prepare you for the modernization effort ahead of you. You need a clear, panoramic view of what the application means to the different stakeholders who are involved in the project.
Building the business case
Before you begin the project, you should have the application inventory prioritized. Now, you must create the business case. A business case can determine whether a project is cost-effective. The goal is to convert your needs into something that your manager can understand in their terms and make a business-based decision.
A business case contains the following parts:
Ensure that this part describes the inadequacies, inefficiencies, and weaknesses of the current application. Put together numbers and figures that explain the situation to the decision makers and help them see the importance of the modernization project.
This is the high-level description of the solution for the problem. You should include the following items:
– Current state-of-the-art technologies.
– An overview of the proposed solution.
– A preliminary cost and schedule proposal.
You can also include a brief description of the modernization model that is going to guide the project.
You should do an honest assessment of the risk that you might have to face. This assessment helps you prepare yourself before any unexpected situations happen. Also, a good risk analysis helps you gain credibility by enumerating the things that might affect the scope of the project.
Ensure that you specify the benefits of the modernization project in a quantifiable way. It is recommended to include several scenarios:
– Pessimistic scenario: In this scenario, you should specify what are the minimum benefits of the modernization project. Ensure that you indicate what risks are more likely to happen and how you are planning to overcome these situations.
– Optimistic scenario: In this scenario, you can specify what are the maximum benefits of the modernization project. Be sure to set realistic quantifiable benefits. Avoid exaggerating, which can affect your credibility if something goes wrong.
You must define how you are going to measure your progress. Each iteration should be evaluated against these metrics. This is not only something that is important to your manager; it also helps you adjust your plan.
Identify all of the stakeholders of the project. Make sure that you include all the relevant people, from developers to business users. Having input from all the affected stakeholders ensures that you remember the importance of the application to your business.
Here is where proof of concept comes into play. If you can show a small, successful example of what you are attempting to accomplish, it helps boost the business case.
The business case is essential for the modernization project. Without it, it is doubtful that you can obtain the funding that is required and keep it throughout the project's life. It is vital that the business case is complete. Otherwise, your modernization effort can be hampered even before you change a single line of code.
Building the team
Modernization projects always involve several people. It is vital that you define who is going to be part of your team at an early stage. Besides the developers that do the actual work, the modernization team is also composed of non-IT personnel (for example, the users). Do not underestimate their contributions or commitment to the project.
Make sure that you define the following roles at a minimum:
Modernization team lead
This person is in charge of directing the team. Make sure that the person who is going to be assigned to this role is an advocate of modernization. It must be a pragmatic and open-minded person who is not afraid of change and passionate about continuous improvement.
The modernization engineers are in charge of applying the modernization approach to the application. Make sure to choose the correct people for this role and keep them focused on the main objectives. During the modernization process, it is natural to want to fix everything immediately. Engineers must remember that modernization is an iterative process.
Business logic expert
The business logic expert usually is a non-IT person. They can be final users or someone whose business process is supported by the application. This role is essential for the project. They can give you guidance about understanding the reasons behind specific functionalities of the application.
Application maintenance personal
This is the person who has experience maintaining the application and modifying it according to the new requirements. This role can explain most of the design and coding decisions.
Do your best to maintain the team’s cohesion and promote team work. Sometimes, the application maintenance personnel feel threatened by the modernization project. Make sure that you convince them of the importance and value of the project.
Developing the plan
Do not try to anticipate every little detail. Things most likely will change, so define a high-level roadmap of the project. Then, do a detailed plan for only one or two iterations. Use the roadmap as you perform your plan to keep your project on track.
This plan should define your immediate objectives for the iteration and the tasks that are needed to accomplish them. Make sure that your plan includes a deliverable at the end of the iteration.
Developing standards and processes
At first, you experiment frequently with the modernization process, but remember to document what does and does not work for you. During this process, you must define standards to ensure that the modernization team does things in a predictable way. As soon as possible, define a set of rules and standards that aim for quality. Be prepared to modify your standards as you and your team find improved techniques.
Always avoid reinventing the wheel
If there is a good standard in the industry, analyze it. If it fits your needs, adopt it. You are not the only one trying to modernize applications. Many things that you need already are researched and implemented by someone else.