In part 1 of this series, I discussed the key characteristics of modern IT systems and the various approaches for building such systems – Re-host, Re-write/Reengineer, Replace, Retain.
In part 2, I outlined how to understand the legacy system better and how to select the right modernization approach.
In this blog, I’ll discuss the various factors that should be considered by an agency as it chooses a modernization approach, and how should such a complex program be executed and tested.
Each modernization option requires a separate planning exercise. There may be cases where the tactics may overlap. Identification of these overlaps can help an agency optimize its modernization efforts. From our experience, the following things should be considered by an agency depending on the modernization option/tactic employed.
|Modernization tactic||When is this approach applicable & key factors to consider while planning the modernization exercise|
Executing a modernization program requires agencies to focus on multiple things – technology, implementation approach, governance, program management, change management, and communication. Before executing the program, agencies should ensure that:
- Modernization team – project manager, business POC, system architect, data architect, test manager, configuration manager etc. – is in place
- Fundamental principles that will guide decision making have been defined and agreed to by all the stakeholders
- Change management plan has been defined
- Metrics to track and measure progress have been identified
- Training plan has been defined
- Plan to decommission old application is defined and signed-off by all the stakeholders
The pace of change driven by the digital imperative has made the selection of the implementation approach very important.
Modernization happens in phases (or releases) and is a continuous journey. The right implementation approach balances predictable and timely execution with the agility to adapt to changes. It breaks down the entire program into small, manageable pieces, ensures effective management of those pieces, keeps all the key stakeholders engaged and facilitates rapid adoption of the new system.
Here are some key elements that an agency should consider while choosing the right approach to execute its modernization program.
- Solution roadmap – Define a basic minimum scope (also called minimum viable product in the product development world) for each phase. If using a COTS product, the product roadmap of underlying platform needs to be incorporated into planning for releases
- Constraints – Identify all the constraints – regulatory, funding, skillsets/staffing, etc. – early on in the planning cycle and create remediation strategies that minimize the impact of these constraints on each release.
- User adoption – Allow for adequate time between releases to manage the learning curve of users, encourage feedback, and facilitate adoption.
- Post release support – An elevated level of support is required during and after any production release. Business subject matter experts must work hand in hand with the technology team during the stabilization period.
- Data migration approach – Minimizing the need to maintain data in multiple systems is key to successfully executing modernization programs. When it cannot be avoided, agencies should be aware of and should have a strategy to de-risk data corruption issues.
- Execution methodology -The methodology for design, development, testing and implementation can either be waterfall, agile or iterative. Traditional waterfall methodology provides more control but increases the risk of late surprises. True agile, however, requires significant investments from an agency in tools and user training. The iterative approach offers the best of both the worlds (i.e. waterfall and agile) – it offers speed of execution and at the same time provides enough headroom to incorporate changes and get stakeholders’ buy-in.
You can refer our point of view, Delivering large IT programs – Choosing the right implementation approach, for more details on selecting the right execution approach.
Agencies understand the need to comprehensively test the systems before taking them live. However, they fail to execute this effectively. Many things may go wrong like, incorrect testing approach, inadequate testing, long cycle time, or lack of integration between systems etc. Not only do agencies need to ensure that the right systems are tested at the right time but also that the testing cycle keeps up with the development cycle. This becomes even more important if an agency uses an agile or an iterative approach.
Agencies need to define and execute their testing strategy based on what they modernize (e.g. application, database or infrastructure). The diagram below maps testing types with modernization approaches.
Figure 1: Testing for Different Modernization Programs
Agencies can accelerate testing by amplifying human effort with automated toolsets from organizations like HP or IBM. Such tools not only accelerate various phases of the testing cycle like design, execution and reporting but also ensure comprehensive coverage. For example, we have used tools like GenTuf to automate test case creation based on the UML model created as part of the modernization initiative. This enabled us to accelerate the testing process by up to 30% and helped our client build a case to adopt automation and DevOps.