DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

SBOMs are essential to circumventing software supply chain attacks, and they provide visibility into various software components.

Related

  • Surprisingly Simple Tools to Help You Smash API-First Approach
  • Practical Steps to Secure the Software Supply Chain End to End
  • 12 Principles for Better Software Engineering
  • Leveraging AI: A Path to Senior Engineering Positions

Trending

  • DZone's Article Submission Guidelines
  • Testing Java Applications With WireMock and Spring Boot
  • The 7 Biggest Cloud Misconfigurations That Hackers Love (and How to Fix Them)
  • Vibe Coding: Conversational Software Development - Part 2, In Practice
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Testing, Tools, and Frameworks
  4. How to Do a Legacy Software Migration: A Successful Checklist

How to Do a Legacy Software Migration: A Successful Checklist

This handy checklist will help you remember the most important steps and considerations for each step of the legacy migration process.

By 
Sylvain Leroy user avatar
Sylvain Leroy
·
May. 17, 18 · Tutorial
Likes (6)
Comment
Save
Tweet
Share
10.1K Views

Join the DZone community and get the full member experience.

Join For Free

Here is a small checklist about how to migrate a legacy migration and to ensure its success. This article is part of my work to explain my knowledge about software migration in the company Byoskill.

First, measure your project according to the changes involved in the migration:

  • The organizational changes
  • The process changes
  • The technological changes

The Organization

You will have to think about each person involved in the software that is going to be migrated. Which skills are required to develop, test, maintain, and support the software? How will you manage the brutal disruption in their daily work and motivate them to embrace the change?

I recommend you to have a clear picture of the team and not underestimate the needs of training, evangelism, and change management. Changing technologies or frameworks, even without any feature changes, may severely impact your end users, the support and maintenance teams, and the integration engineers.

The Processes

An automated migration differs from a classical IT software project by adding a certain disruption in terms of time and practices. Since the migration has to be hastened (thanks to the usage of specialized tools), the success of the project requires a high level of software development practices. Usually, the legacy software is still hitting the wall in terms of agility, silo breakup, continuous integration, and test automation practices.

The legacy project migration requires a clear state (and view) of the following processes:

  • SDLC: Software Development Lifecycle
    • What is the current process?
    • Are there any traps or caveats to be aware of?
    • How much time does it take to push a new feature from the specification to production?
  • Test automation: You will have to answer many questions associated with well-identified risks.
    • How is the application tested?
    • At which levels?
    • Are the tests automated?
    • What is the coverage (estimated and measure)?
    • What are the requirements to set up a new test environment?
    • How much does it cost?
    • Is test data available?
    • How accurate is the test data?
    • Which tools are required to execute the tests? Licenses?
    • What would it take to obtain sufficient coverage for the migration project?
  • Continuous Integration
    • How is the software built?
    • How much time does it take to produce a new release?
    • What are the steps?
    • Which parts are tricky or manual?
    • What are the components to be built?
    • How many individual parts compose the software?
    • Which tools are used?
    • What would it take to obtain complete CI/CD  for the migration project?
  • DevOps
    • Logging and monitoring support
      • Will the tools still be compatible with the migration?
    • Automatic deployment
      • What are the changes required to maintain (or obtain) automatic deployment of the solution?
    • Error and exception handling
      • Detect and document any regressions to catch and handle the errors during the run.
    • Performance testing
      • Does the software have any automated performance tests?
      • Will they still be compatible?
  • Release Management
    • How many active versions are there for this software?
    • What is the branch release model?
    • Versions to maintain and port?
    • Frequency of releases and year schedule/roadmap?

The Technologies

A good legacy migration project is preparing a clear state of the perimeter to be migrated and the targeted solution.

It comes in a phase of three steps:

  • The actual picture
  • The definition of the target
  • The migration itself

Drawing the Current Picture

The initial software assessment does really matter. Indeed, a solution architect will detect any caveats and flaws in the current architecture that may critically slowdown the migration project.

Such assessment usually requires:

  • A technology survey: Which technologies are used in the software, license issues, the exact version, and possibility of an upgrade?
  • Architecture assessment: It will control the priority of the physical organization of the project (folders, files), the logical structure (components, package, functional and technical layers) and the dependency matrix (cycles, code weaving, code smells).
  • Automated test assessment: Code coverage, test documentation, test robustness/fragility, main complex components, and their level of testing.
  • Code quality assessment:A quick review to identify the main risks (reliability, security, maintainability).

The Definition Phase

This phase has four objectives:

  • Get an understanding of the cost and time of the migration project.
  • Evaluate the ROI of the operation with the customer.
  • Eliminate the main technical/functional risks of the migration.
  • Communicate to the customer the organization and process changes to be done.

To achieve that, a main document (or specification) has to be produced: the migration guide. This migration guide will expose the targeted solution, the way to achieve it, the necessary steps, a risk analysis and RACI, and the cost and estimation of each task.

This definition phase may be accompanied by a Proof of Concept (POC), a short-term development performed on the current solution to assess the feasibility of the targeted solution and to allow any necessary tests to be executed. It will be critical to pay attention to any functional regressions and performance regressions in this POC.

The Migration

The migration is not a Big Rewrite.  It's an incremental, well-defined process where automation removes the main source of failure of migration projects: the time of execution. Indeed, the longer the migration process takes, the more dangerous the project will become, it will be debated, and finally rejected.

A good migration project usually has the following qualities:

  • Incremental: In some ways, it's possible to have the two technological environments living as roommates in the software.
  • Fast: The amount of rewriting, manual fixes, and iterations to obtain the targeted solution have to be small.
  • Cost-effective: The volume of manual operation cost should be significantly smaller thanks to automation.
  • Critical: No legacy migration finds its justification without a real concern (security, investment, scale-up operation, business loss, or expectations).
Software development Test data

Published at DZone with permission of Sylvain Leroy. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Surprisingly Simple Tools to Help You Smash API-First Approach
  • Practical Steps to Secure the Software Supply Chain End to End
  • 12 Principles for Better Software Engineering
  • Leveraging AI: A Path to Senior Engineering Positions

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • [email protected]

Let's be friends: