Cloud Modernization Patterns Module 1 · Size It Up

Assessing a Legacy Application

Last reviewed · content updated

Intermediate

What you'll learn

~20 min
  • Drive an AI CLI through a structured legacy-application assessment
  • Produce the four artifacts every assessment needs: stack risk table, weakness list, success metrics, risk register
  • Write weaknesses as decision criteria -- specific, countable, and tied to consequences

The assignment

Before Meridian spends a dollar on AssetTrack, you need to know what it actually is — not what the wiki from 2019 says it is. You have read access to the repository and one afternoon. A decade ago this was three weeks of consultant time. Today you open your AI CLI at the repo root and drive.

Prompt first

Assess this codebase for modernization planning. Produce exactly four artifacts:
1. CURRENT-STATE TABLE: every major component of the stack (framework,
runtime, data access, UI layer, build system, key libraries) with columns:
Component | Version in use | Current supported version | Risk if unchanged.
2. WEAKNESS LIST: the top structural weaknesses, numbered. Each must be
specific and countable (e.g., "code-behind logic in 74 WebForms pages"),
never vague (e.g., "outdated architecture").
3. SUCCESS METRICS: measurable targets a modernization of this app should be
held to (security, performance, maintainability). Numbers, not adjectives.
4. RISK REGISTER: the top risks of modernizing, each paired with a concrete
mitigation.
Read the code before answering. Cite file paths as evidence for every claim.

The prompt does the shaping; the AI does the reading. Two things make this prompt work harder than a generic “review this code”:

  • It names the artifacts. You get a current-state table, a weakness list, success metrics, and a risk register — the four sections every downstream decision in Lessons 1.3, 1.4, and 2.1 will consume.
  • It bans vagueness. “Specific and countable” and “cite file paths” turn the output from vibes into evidence you can defend in front of a steering committee.

What comes back: the current-state table

For AssetTrack, the table lands like this (abridged):

ComponentIn useSupportedRisk if unchanged
.NET Framework4.84.8.x is the end of the line — no successorFrozen platform; Windows-only forever
ASP.NET WebForms4.xMaintenance only, no port to modern .NETUI layer has no forward path
Data accessODP.NET + hand-written SQLCurrent driver existsTight Oracle coupling; queries untested
Windows Server2016Extended support endingOS patching burden, upgrade cliff
BuildMSBuild + a 400-line batch script—One person understands the release process

One table, one glance, and the shape of the problem is visible: the platform is frozen (Framework 4.8 is the end of its line), the UI layer has no forward path at all, and the release process is a single point of human failure.

Weaknesses as decision criteria

A weakness list earns its keep when each line can anchor a decision. Compare:

Weak: “The application uses outdated patterns and has technical debt.”

Strong:

1. UI logic locked in WebForms code-behind - 212 pages, no port path to modern .NET
2. Business rules duplicated between app code and Oracle stored procedures - 47 procedures
3. No automated tests - 0% coverage on a codebase with nightly batch jobs
4. Build and release known to one engineer - single point of failure
5. Session state in-process - blocks running more than one instance
6. Batch jobs coupled to local file paths - blocks any move off the VMs

Every line is countable, and every line points somewhere: line 1 says the UI cannot be ported, only rebuilt; line 5 says even a simple rehost cannot scale out; line 6 says the batch jobs block the exit from VMs. In Lesson 1.3 you will feed lists like this directly into the build-vs-adopt-vs-extend decision.

💡Make the AI show its receipts

If a weakness arrives without a file path, push back: “show me the evidence for #5.” An AI CLI can grep the codebase in seconds — an assessment claim that survives a receipts check is a claim you can put in front of leadership. One that does not survive just saved you from presenting it.

Success metrics: numbers, not adjectives

“More maintainable and secure” cannot be verified, so it cannot gate a phase. The assessment’s metric set must look like this:

Security: zero critical/high findings in dependency and code scans
Performance: p95 page load under 3 seconds; nightly batch window under 2 hours
Reliability: app runs as 2+ instances behind a load balancer (kills weakness #5)
Maintainability: 80% test coverage on business-rule code; release runbook
executable by any engineer on the team

Each metric traces back to a weakness. That is the pattern: weakness list and success metrics are the same facts, written as before and after.

The risk register

Modernizing carries its own risks, and the register pairs each with a mitigation, not a worry:

RiskMitigation
Breaking changes during the .NET portCharacterization tests on batch outputs before porting begins
Oracle data behavior differs under new data-access layerSide-by-side query comparison harness in the dev environment
Performance regression on nightly batchBenchmark the current batch window now; gate cutover on matching it
User disruption in field operationsFeature flags and a per-department gradual rollout, never big-bang

Your turn

Run the four-artifact prompt against a codebase you own — any aging project qualifies. And note what just happened to the economics: this used to be weeks of consulting effort, which meant it happened once and went stale. Now it is an afternoon, which means it should happen repeatedly — Lesson 5.1 turns that from an observation into an operating model. Then apply the two quality gates: every weakness countable, every metric a number. Where the AI hedges, that is exactly where to dig.

KNOWLEDGE CHECK

Which of these is written correctly for a modernization assessment's weakness list?

Key takeaway

An assessment is four artifacts — current-state table, countable weakness list, numeric success metrics, risk register with mitigations — and your AI CLI can draft all four from the code in an afternoon. Your job is the two quality gates: every claim cited, every metric a number. Next lesson, this evidence meets FieldDesk’s three possible futures.

Search lessons