Governments are overwhelmed balancing consumer expectations, aging workforce, regulations, rapid technology change and fiscal deficits. This blog gathers a community of SMEs who discuss trends and outline how public sector organizations can leverage relevant best practices to drive their software-led transformation and build the future of technology – today!

« Modernizing Legacy IT into IT of the Future: Part 2 - Understanding legacy systems | Main | Modernizing Legacy IT into IT of the Future: Part 4 - Managing modern systems »

Modernizing Legacy IT into IT of the Future: Part 3 - Planning, executing & testing a modernization program

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.

Modernization planning

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

Re-host

  • Minimal or preferably no changes required to functionality or UI to re-host programs
  • Target platform is scalable and offers the desired performance levels
  • New platform addresses all security vulnerabilities and offers stronger security features
  • And of course, the new platform ensures a significant reduction in total cost of ownership (based on my experience, it should be at least 30%)

Re-write/Re-engineer

  • There is a way to understand what the existing system does (either through existing documentation or analysis of source-code & creation of documentation or through business users/SMEs)
  • Business rules are not expected to undergo major changes
  • Target technology offers scalability and is easy to maintain
  • If tools are selected to automate migration then they should ensure comprehensive coverage (i.e. not miss out on any code or functionality), optimize code base (e.g. remove dead code) and create target code in industry standard frameworks (like Spring)
  • Design for the new UI is in place and signed-off by business users

Replace

  • Fit-gap analysis has been executed and the selected COTS package supports most of the functionalities (between 80% to 90%) out-of-the box
  • COTS package has a clear upgrade path and will be able to keep up with changes in requirements/technology upgrades
  • COTS package is compatible with other systems and can easily exchange information
  • All the cost elements have been identified to calculate the total cost of ownership (e.g., in addition to the license cost, maintenance cost, training cost etc.)

Retain

  • Services/functionalities that would be exposed as APIs exchange important information with other systems and can also be accessed through mobile devices
  • APIs have been developed using technologies/framework that can scale with increasing workload
  • SLAs have been defined and monitored for the APIs 

 

Modernization execution

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.

 

Testing

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.


Figure6 - Testing for different modernization programs.png

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.

Read part 4 to learn how to deploy modern systems, ensure adoption and manage modern systems.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.