Markdown Editor

Legacy Modernization Assessment Template (7 Rs)

Portfolio inventory, value and health scoring, 7 Rs disposition, strangler fig plan, data migration, roadmap, costs and governance

아키텍처 및 시스템 설계전체7 Rs migration strategies; strangler fig patternmodernizationassessmentmath

사용법: Use when planning the modernization of a legacy application portfolio. Build the inventory and agree scoring criteria before proposing dispositions. The main pitfall is a big-bang rewrite of critical systems; prefer incremental strangler fig steps with parity checks and respect dependencies in sequencing.

미리보기

Legacy Modernization Assessment: [Portfolio, domain or programme name]

Assessment of a legacy application portfolio and the modernization plan that follows from it: inventory, assessment criteria (business value, technical health, risk), a disposition for each application using the 7 Rs (retire, retain, rehost, relocate, replatform, repurchase, refactor or re-architect), a strangler fig plan for incremental replacement, data migration, dependencies, a sequenced roadmap, costs and benefits, risks and governance. Based on the widely used 7 Rs migration strategies and the strangler fig pattern. Replace every [bracketed] value and every row marked Example; the examples follow an insurer modernizing its policy administration estate.

Document control

FieldValue
Document ID[MOD-ASSESS-001]
Portfolio / programme[Name]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@enterprise-architect]
Sponsor[@business-sponsor]
Contributors[Application owners, platform, security, data, finance]
Last updatedYYYY-MM-DD
Classification[Internal / Confidential]
Related[Application inventory], [TCO analyses], [Target architecture], [ADRs]

Approvals

RoleNameDecisionDate
Business sponsor[@name][Approved / Changes requested]YYYY-MM-DD
Chief architect[@name][Decision]YYYY-MM-DD
Head of operations[@name][Decision]YYYY-MM-DD
Finance[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft: inventory and criteria
0.2YYYY-MM-DD[@name]Example: Scores calibrated in workshop; dispositions proposed
1.0YYYY-MM-DD[@name]Example: Approved by programme board

Contents

1. Introduction

1.1 Purpose and drivers

[State the business and technical drivers.] Example: The policy administration estate runs on a mainframe whose support contract ends in 36 months. Product launches take nine months because rules are hard-coded in COBOL, and four of the six engineers who know the system will retire within five years. The board wants new products launched in under three months and run costs reduced by at least 25%.

1.2 Scope

In scope: [applications, environments, business units]. Example: 12 applications supporting motor and home insurance, including their batch jobs, interfaces and reporting extracts.

Out of scope: [list]. Example: the claims platform (modernized in 2024) and the corporate finance ledger.

1.3 Success measures

IDMeasureBaselineTargetBy
SM-01Example: Time to launch a new product variant9 months3 monthsYYYY-MM-DD
SM-02Example: Annual run cost of the estateUSD 6.4 mUSD 4.8 mYYYY-MM-DD
SM-03Example: Applications on unsupported platforms70YYYY-MM-DD
[SM-nn][Measure][Baseline][Target]YYYY-MM-DD

2. Application portfolio inventory

App IDApplicationBusiness capabilityOwnerUsersTechnology stackHostingAge (years)Annual run cost (USD k)Criticality
APP-01Example: Policy Admin CoreIssue and maintain policies[@owner]900 internalCOBOL, CICS, DB2Mainframe282,900Tier 1
APP-02Example: Rating EnginePrice quotes[@owner]900 internal, 40 brokersCOBOL batch, rule tablesMainframe22800Tier 1
APP-03Example: Broker PortalBroker quotes and binds[@owner]2,300 brokersJava 8, JSPOn-premises VMs12420Tier 1
APP-04Example: Document GeneratorPolicy documents[@owner]SystemCommercial product v9 (end of support)On-premises15260Tier 2
APP-05Example: Agent CommissionsCalculate commissions[@owner]30 finance staffMS Access, Excel macrosFile share1040Tier 2
APP-06Example: Legacy ReportingMonthly regulatory extracts[@owner]15 analystsReporting suite on DB2On-premises18310Tier 2
APP-07Example: Old Quote ArchiveRead-only quote history[@owner]5 usersOracle 11gOn-premises1690Tier 3
[APP-nn][Name][Capability][@owner][Users][Stack][Hosting][Age][Cost][Tier]

Data sources for the inventory: [CMDB export date, interviews, cost reports, licence records].

3. Assessment criteria and scoring

3.1 Criteria

DimensionCriterion1 means5 meansWeight
Business value (BV)Strategic fitNo role in future strategyCore to differentiating capability0.40
Business criticalityRarely used; outage tolerableRevenue stops during outage0.35
Change demandNo change requested in yearsConstant change requests0.25
Technical health (TH)SupportabilityVendor or platform unsupportedCurrent, supported stack0.30
MaintainabilityFew people can change it safelyWell-tested, documented, modular0.30
Scalability and performanceFails at current peakAmple headroom0.20
Security postureKnown unfixable weaknessesMeets current standards0.20
Risk (RK)Operational and compliance riskLow exposureHigh exposure, regulatory finding likelyNot weighted; used as a flag

3.2 Composite scores

Each dimension score is a weighted average of its criteria:

BVa=∑kwk bak,THa=∑kvk hakBV_a = \sum_{k} w_k \, b_{ak}, \qquad TH_a = \sum_{k} v_k \, h_{ak}

where bakb_{ak} and hakh_{ak} are the 1-5 scores of application aa and the weights in each dimension sum to 1.

Example for APP-01: strategic fit 5, criticality 5, change demand 4 gives BV=0.40(5)+0.35(5)+0.25(4)=4.75BV = 0.40(5) + 0.35(5) + 0.25(4) = 4.75; supportability 1, maintainability 1, scalability 3, security 2 gives TH=0.30(1)+0.30(1)+0.20(3)+0.20(2)=1.60TH = 0.30(1) + 0.30(1) + 0.20(3) + 0.20(2) = 1.60.

App IDBVTHRisk flagQuadrant
APP-01Example: 4.751.60HighHigh value, poor health
APP-024.401.90HighHigh value, poor health
APP-034.102.80MediumHigh value, fair health
APP-043.002.20High (end of support)Medium value, poor health
APP-052.601.40MediumLow value, poor health
APP-063.202.60MediumMedium value, fair health
APP-071.302.00LowLow value, poor health
[APP-nn][BV][TH][L/M/H][Quadrant]

The quadrant gives a starting point: high value with poor health points to replatform or refactor; low value with poor health points to retire or repurchase; high value with good health points to retain; low value with good health points to retain with minimal investment or consolidate.

4. Disposition using the 7 Rs

4.1 Definitions

The definitions below are written for this template.

DispositionWhat it means hereTypical trigger
RetireSwitch the application off; archive what must be kept and move remaining users to another systemLow value, overlapping capability, few users
RetainKeep the application as it is for now and revisit laterRecently upgraded, low risk, or blocked by a dependency
RehostMove the application unchanged to new infrastructure, such as cloud virtual machines ("lift and shift")Data centre exit with a fixed date; little change demand
RelocateMove a whole platform to another hosting location without changing machines or software, for example moving a virtualisation cluster to a provider-hosted equivalentLarge estates on a common hypervisor; speed over optimisation
ReplatformMove with targeted changes to use managed services, such as a managed database or container platform, without changing the core designPlatform end of support; modest effort available
RepurchaseReplace the application with a commercial or SaaS product and migrate the dataNon-differentiating capability with a mature market
Refactor or re-architectRedesign and rebuild, often into services, to gain capabilities the current design cannot provideHigh value, high change demand, poor health

4.2 Disposition per application

App IDApplicationDispositionRationaleTargetEffort (person-months)Wave
APP-01Example: Policy Admin CoreRefactor / re-architectHighest value, lowest health; product agility is the main driverPolicy services on container platform1602-3
APP-02Example: Rating EngineRefactor / re-architectRules must be editable by product teamsRules engine service482
APP-03Example: Broker PortalReplatformSound design; Java 8 and VMs unsupportedJava 21 on container platform141
APP-04Example: Document GeneratorRepurchaseCommodity capability; product at end of supportSaaS document composition101
APP-05Example: Agent CommissionsRepurchaseSpreadsheet risk; standard commission software existsCommission module of finance suite62
APP-06Example: Legacy ReportingReplatformExtracts still needed; move to data platformData warehouse and BI tool123
APP-07Example: Old Quote ArchiveRetireFive users; data retained in archive storageArchive store with search21
[APP-nn][Name][R][Why][Target][PM][Wave]

Disposition summary: [counts per R]. Example: 1 retire, 0 retain, 0 rehost, 0 relocate, 2 replatform, 2 repurchase, 2 refactor.

5. Target state and strangler fig plan

5.1 Target state summary

[Summarise the target architecture.] Example: Policy, rating and document capabilities exposed as services on the container platform, event-driven integration through the enterprise event broker, an operational data store per service, and the data platform as the single source for reporting.

5.2 Strangler fig approach

The strangler fig pattern replaces a legacy system gradually: a routing facade sits in front of the old system, new functionality is built alongside it, and routes are switched to the new implementation one capability at a time until the old system can be removed. The diagram shows the intermediate state where quoting has moved and policy changes have not.

StepCapability movedRouting changeSafety check before switchRollback
S1Example: Put facade in front of all policy and quote calls100% to legacyLatency overhead < 20 msRemove facade route
S2Example: New quotes for motor10%, 50%, 100% of motor quotes to rating servicePrice parity with legacy on 50,000 replayed quotes, tolerance 0.5%Route back to legacy
S3Example: Policy issue for new motor policiesNew policies only; existing stay on legacyShadow mode for 4 weeks, 0 unexplained differencesRoute back; replay events
S4Example: Mid-term amendments for migrated policiesPer-policy routing by migration flagReconciliation report clean for 2 cyclesFlag reset per policy
S5Example: Decommission legacy motor functionsRemove routesNo traffic for 60 daysRestore from archive (not expected)
[Sn][Capability][Change][Check][Rollback]

6. Data migration

Data setSourceTargetVolumeStrategyQuality checksOwner
Example: Active motor policiesDB2 POLMASTPolicy service store1.2 m recordsTrickle migration per policy at renewal plus bulk for remainderRecord counts, premium totals, 1% field-level sample[@data-owner]
Example: Quote historyOracle 11gArchive store38 m recordsOne-off bulk exportChecksums per file; random retrieval test[@data-owner]
Example: Rating tablesMainframe VSAM filesRules engine2,400 tablesConvert and verify by replayParity on replayed quotes[@product-owner]
[Data set][Source][Target][Volume][Big bang / trickle / dual write / CDC][Checks][@name]

Principles: [list]. Example: source remains the system of record until reconciliation passes; every migration run is repeatable and logged; personal data is not copied to non-production without masking; retention rules are applied during migration, not afterwards.

7. Dependencies

The diagram shows the main runtime dependencies between applications in scope; arrows point from consumer to provider.

IDDependencyTypeImpact on sequencing
DEP-01Example: APP-03 calls APP-02 and APP-01 synchronouslyTechnicalFacade (S1) must precede any portal change
DEP-02Example: APP-06 reads DB2 tables directlyTechnicalReporting must move to data platform before DB2 tables change
DEP-03Example: Container platform ready for Tier 1 workloadsPlatformBlocks all refactor work
DEP-04Example: Mainframe contract end dateCommercialHard deadline for APP-01 and APP-02 exit
[DEP-nn][Dependency][Technical / Platform / Organisational / Commercial][Impact]

8. Sequencing roadmap

The roadmap below shows three waves and the platform foundation they depend on.

WaveContentExit criteriaValue delivered
FoundationExample: Platform, facade, event broker, CI/CDTier 1 readiness review passedEnables all later waves
1Example: APP-07, APP-04, APP-03Archive live; documents on SaaS; portal on platformUSD 0.5 m annual saving; two unsupported products removed
2Example: APP-02, APP-05Motor and home quotes on new rating; commissions in finance suiteProduct teams change rates without code
3Example: APP-01, APP-06All policies migrated; mainframe offContract exit; target run cost reached

9. Costs and benefits

WaveOne-off cost (USD k)Double running (USD k)Run cost of wave scope after (USD k per year)Annual saving (USD k)
FoundationExample: 1,20003000
1900150330490
21,600400520320
33,8001,1003,650790
Total7,5001,6501,600

Measured benefits: [link to success measures in 1.3]. Example: annual run cost falls from USD 6.4 m to USD 4.8 m (saving 1.6 m, 25%), product launch time falls to 3 months, and seven unsupported platforms are removed. Simple payback on one-off and double running costs of USD 9.15 m is about 5.7 years at full savings; strategic benefits (time to market, key-person risk) are the main justification.

10. Risks

IDRiskLikelihoodImpactMitigationOwner
R-01Example: Undocumented business rules in COBOL are missedHighHighRule mining tools, parity testing by replay, shadow mode[@name]
R-02Example: Key legacy engineers leave before knowledge transferMediumHighRetention agreements; pair them with new team from month 1[@name]
R-03Example: Double running lasts longer than plannedMediumMediumPer-wave exit criteria; budget contingency of 15%[@name]
R-04Example: Mainframe exit date slips past contract endMediumHighNegotiate 12-month extension option now[@name]
[R-nn][Risk][L/M/H][L/M/H][Mitigation][@name]

11. Governance

ForumMembersCadenceDecides
Programme boardExample: Sponsor, CIO, chief architect, financeMonthlyBudget, wave gates, scope changes
Design authorityChief architect, domain architects, securityEvery two weeksTarget design, ADRs, exceptions
Wave stand-upWave leads, product ownersWeeklyDelivery issues, dependencies

Phase gates: each wave passes a gate with evidence against its exit criteria (section 8), updated costs (section 9) and a refreshed risk view (section 10). The assessment scores in section 3 are refreshed yearly or when a major driver changes.

12. Appendices

12.1 Glossary

TermMeaning
DispositionThe decision on what to do with an application
Strangler figIncremental replacement of a system behind a routing facade
Shadow modeRunning the new implementation on real inputs without using its outputs, to compare results
CDCChange data capture: streaming changes from a database log
Double runningPeriod when old and new systems both incur cost

12.2 References

ReferenceUse
Martin Fowler, "StranglerFigApplication" (martinfowler.com)Origin of the strangler fig pattern
Cloud provider migration guidance on the 7 Rs (for example AWS Prescriptive Guidance)Disposition vocabulary
[Internal TCO analysis]Section 9 figures

Standard and licence note

Based on common industry practice for application portfolio assessment, the 7 Rs migration strategies (an extension of Gartner's original "5 Rs" popularised by cloud providers) and the strangler fig pattern described by Martin Fowler. Definitions are written in original words for this collection; examples and figures are illustrative. Template licence: MIT.

관련 템플릿