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.
2.2 KiB
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.
- Rehost (lift & shift)
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.