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...

99 lines
2.2 KiB
Markdown

# 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