You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
code-modernization/code-modernization-high-lev...

2.2 KiB

High Level Code Modernization Outline

TODO documents summary blurb with goals

  • incremental updates

1. Assessment and Planning

Inventory

  • Catalog existing components
    • Applications
    • Services
    • Libraries
    • Dependencies
    • Frameworks
    • Tools
  • Identify existing architecture documentation.
    • Design documents
    • Operation procedures
      • CM procedures
      • Deployment procedures
      • Maintenance procedures
    • Test procedures
    • Requirements
      • Software
      • Infrastructure

Stakeholder Analysis

  • Identify and engage stakeholders to understand business needs and objectives.

Business Alignment

  • Clarify modernization drivers
    • Cost reduction
    • Security
    • Scalability
    • Feature velocity
    • Compliance

Scope Definition

  • Identify the extent of modernization needed across the codebase.

Modernization Approach

  • Analyze potential approaches and determine the best strategy based on ROI, risk, and resource availability.
    • Rehost (lift & shift)
      • Move to new infrastructure, ie. VMs -> cloud.
    • Replatform
      • Making minimal changes to optimize applications for a new platform, ie. on-prem DB -> managed DB.
    • Refactor/Re-architect
      • Rewrite or restructure to improve design, scalability, and flexibility.
    • Replacement
      • Switching to a completely different solution or third party software.

2. Analysis

  • Structure review
    • Understand the existing codebase's architecture and dependencies.
    • Create dependency graph of code components
      • Classes
      • Internal and external libraries
      • Interfaces
  • Debt identification
    • Locate technical debts, outdated patterns, and obsolete technologies.
  • Impact assessment
    • Determine areas where modernization will yield highest benefits, such as performance bottlenecks.

Technical Assessment

  • Evaluate
    • Code quality
    • Maintainability
    • Test coverage
      • Lines of Code
      • Requirements

3. Strategy

4. Execution

The "Execution" phase is a repeatable process to incrementally update parts of the system.

4.1 Design and Prototyping

4.2 Implementation

4.3 Testing and Verification

4.4 Deployment

5. Documentation & Training

6. Ongoing Maintenance and Improvements