Modernización legacy con IA mediante discovery, priorización, quick wins y evolución incremental.
,

Cómo crear un roadmap de modernización legacy con IA: de los prompts a la estrategia

Publicado el

· Actualizado el

· Por

Un roadmap de modernización legacy con IA no comienza pidiendo al modelo que «modernice esta aplicación». En escenarios reales, el enfoque efectivo es justo el opuesto: mantener una conversación estructurada, prompt a prompt, para transformar el conocimiento disperso en decisiones técnicas fundamentadas.

Un sistema que lleva diez o quince años en producción acumula muchas más cosas que código.

Por tanto, construir un roadmap de modernización legacy con IA exige comprender primero el sistema actual. Este artículo complementa mi guía sobre cómo modernizar software legacy sin detener el negocio y el análisis de por qué conviene auditar una aplicación aunque todavía funcione.

  • Dependencias.
  • Decisiones arquitectónicas.
  • Reglas de negocio.
  • Integraciones.
  • Procesos manuales.
  • Scripts.
  • Jobs.
  • Excepciones.
  • Deuda técnica.
  • Conocimiento que nunca llegó a documentarse.

La pregunta equivocada: «¿Puede una IA reescribir mi aplicación?»

La pregunta útil: «¿Cómo puedo conversar con una IA para entender el sistema, reducir la incertidumbre y decidir qué modernizar primero?»

Ese cambio de enfoque es la base de todo el proceso que vamos a explorar.

Roadmap de modernización legacy con IA aplicado a un sistema de software existente
La IA puede ayudarnos a comprender y planificar la evolución de un sistema legacy antes de empezar a modificarlo

Roadmap de modernización legacy con IA: el error del prompt único

Un prompt como este parece la vía rápida:

Markdown
Analyze this legacy application and tell me how to modernize it.

Pero mezcla demasiadas preguntas al mismo tiempo:

  • ¿Cómo funciona?
  • ¿Dónde está fallando?
  • ¿Cuáles son los componentes críticos para el negocio?
  • ¿Existe algún riesgo inminente?
  • ¿Qué deberíamos cambiar?
  • ¿En qué orden?
  • ¿Hacia qué arquitectura objetivo?

Sin embargo, el resultado, aunque suene convincente, suele pecar de genérico.

Tal vez recomiende actualizar frameworks, introducir microservicios, aumentar la cobertura de testing, mejorar los pipelines de CI/CD y revisar la infraestructura.

En teoría, todo eso suena razonable.

Pero seguimos sin saber si realmente responde a las necesidades específicas del sistema que tenemos delante.

Por consiguiente, la mejor estrategia es dividir el problema.

flowchart TB
   A["Discovery"] --> B["Assessment"]
    B --> C["Priorización"]
    C --> D["Quick wins"]
    D --> E["Roadmap"]
    E --> F["Revisión crítica"]
    F --> G["Métricas"]
    G --> H["Ejecución"]
    H --> I["Aprendizaje"]
    I --> C
DiscoveryAssessmentPriorizaciónQuick winsRoadmapRevisión críticaMétricasEjecuciónAprendizaje

No buscamos un prompt mágico. Diseñamos una conversación técnica.

Cada interacción reduce una parte de la incertidumbre y prepara la siguiente decisión.

Mermaid para documentar la modernización de software legacy

Los documentos en Markdown, basado en texto plano estructurado, son útiles; sin embargo, determinados problemas de ingeniería se entienden mucho mejor visualmente.

Arquitectura. Dependencias. Secuencias. Estados. Roadmaps. Árboles de decisión.

Aquí es donde Mermaid brilla especialmente: permite generar diagramas complejos que siguen siendo texto plano y versionable. Además, su documentación oficial de sintaxis cubre diagramas de flujo, secuencia, estados, arquitectura y otras representaciones útiles para un roadmap de modernización legacy con IA.

Markdown + Mermaid + Git + IA

Documentación técnica viva

Markdown estructura el conocimiento, Mermaid lo representa, Git conserva su evolución y la IA ayuda a analizarlo, contrastarlo y mantenerlo actualizado.

Podemos incorporar esta instrucción común en nuestros prompts:

Markdown
MERMAID INSTRUCTIONS

Generate Mermaid diagrams whenever a visual representation improves understanding.

Choose the appropriate diagram type:

- flowchart: architecture, dependencies and processes
- sequenceDiagram: runtime interactions and critical flows
- classDiagram: structural and domain relationships
- stateDiagram-v2: lifecycle and state transitions
- erDiagram: data relationships
- timeline: roadmap phases
- gantt: execution plans
- mindmap: discovery and risk summaries
- quadrantChart: prioritization matrices

Rules:

- Use repository evidence as the source of truth.
- Do not invent components or relationships.
- Clearly distinguish confirmed facts from inferences.
- Keep diagrams readable.
- Prefer several small diagrams over one giant diagram.
- Explain what every diagram demonstrates.
- Return valid Mermaid syntax.

Prompt 1. Consolidar el conocimiento para el roadmap de modernización legacy con IA

Supongamos que ya hemos utilizado la IA para analizar diferentes aspectos del proyecto durante una fase de descubrimiento.

Markdown
TECHNICAL_INVENTORY.md
DOMAIN_MAP.md
ARCHITECTURE.md
CRITICAL_FLOWS.md
HOTSPOTS.md
TECHNICAL_DEBT.md
DEPENDENCIES.md
TESTING_ASSESSMENT.md
SECURITY_REVIEW.md

Objetivo de esta fase: consolidar la información disponible y construir una imagen fiable del sistema actual.

Todavía no buscamos: soluciones, arquitectura objetivo ni iniciativas de modernización.

Markdown
You are acting as a senior software architect responsible for consolidating an existing technical discovery.

Analyze:

- TECHNICAL_INVENTORY.md
- DOMAIN_MAP.md
- ARCHITECTURE.md
- CRITICAL_FLOWS.md
- HOTSPOTS.md
- TECHNICAL_DEBT.md
- DEPENDENCIES.md
- TESTING_ASSESSMENT.md
- SECURITY_REVIEW.md

Create CURRENT_STATE_ASSESSMENT.md.

Identify:

- Business-critical components
- Technical hotspots
- Unsupported dependencies
- Security risks
- Testing gaps
- Operational risks
- Architectural bottlenecks
- Single points of failure
- High-change components
- Excessive coupling

For each finding include:

- Evidence
- Affected component
- Business impact
- Technical impact
- Probability
- Severity

Do not propose modernization actions yet.

MERMAID OUTPUT

Generate:

1. A flowchart showing the current high-level architecture.
2. A dependency diagram.
3. A mindmap summarizing the main risk areas.

Only represent relationships supported by evidence.

Clearly mark inferred relationships.

Generate CURRENT_STATE_ASSESSMENT.md.

La última instrucción sigue siendo fundamental:

Do not propose modernization actions yet.

Entender → Contrastar → Decidir

La modernización comienza reduciendo incertidumbre, no eligiendo tecnología.

Una posible representación resultante sería la siguiente:

graph LR
    USER["Usuario"]
    WEB["Aplicación web"]
    APP["Aplicación principal"]
    DB["Base de datos"]
    CACHE["Caché"]
    QUEUE["Cola"]
    WORKER["Workers"]
    EXT["Servicios externos"]
    USER --> WEB
    WEB --> APP
    APP --> DB
    APP --> CACHE
    APP --> QUEUE
    QUEUE --> WORKER
    APP --> EXT
G USER Usuario WEB Aplicación web USER->WEB APP Aplicación principal WEB->APP DB Base de datos APP->DB CACHE Caché APP->CACHE QUEUE Cola APP->QUEUE EXT Servicios externos APP->EXT WORKER Workers QUEUE->WORKER

El diagrama cumple una doble función: obliga al modelo a explicitar sus suposiciones sobre la topología del sistema.

Si el diagrama no tiene sentido, probablemente su comprensión del sistema sea todavía deficiente.

Ingeniero utilizando IA para consolidar documentación técnica de un sistema legacy
La primera conversación no busca soluciones: busca consolidar evidencias y construir una imagen fiable del sistema actual.

Prompt 2. Convertir hallazgos en prioridades

Dentro de un roadmap de modernización legacy con IA, un inventario de problemas todavía no conforma una estrategia ejecutable.

Por eso, la clave está en priorizar con criterios explícitos de impacto, fragilidad, riesgo y capacidad de cambio.

No toda deuda técnica tiene el mismo impacto ni merece resolverse al mismo tiempo.

Markdown
Using CURRENT_STATE_ASSESSMENT.md, create MODERNIZATION_PRIORITY_MATRIX.md.

Evaluate each major component according to:

- Business criticality
- Technical fragility
- Frequency of change
- Existing test coverage
- Security exposure
- Operational complexity
- Dependency risk

Classify each component as:

Critical
High
Medium
Low

For each classification explain:

- Evidence
- Main risk
- Why this priority is justified

MERMAID OUTPUT

Create a quadrantChart.

X axis:
Low technical fragility → High technical fragility

Y axis:
Low business impact → High business impact

Do not invent false numerical precision.

Explain why each high-priority component occupies its position.

Generate MODERNIZATION_PRIORITY_MATRIX.md.

El resultado puede combinar una tabla con una representación visual como esta:

ComponenteImpactoFragilidadCambioTestsPrioridad
FacturaciónCríticoAltaAltaBajaCrítica
AutenticaciónCríticoMediaMediaAltaAlta
Reporting históricoMediaAltaBajaBajaMedia
ExportaciónBajaMediaBajaNulaBaja
graph LR
    Q1["Alto impacto · alta fragilidad: Facturación"]
    Q2["Alto impacto · fragilidad media: Autenticación"]
    Q3["Impacto medio · alta fragilidad: Reporting"]
    Q4["Bajo impacto · fragilidad media: Exportación"]
    Q4 --> Q3
    Q3 --> Q2
    Q2 --> Q1
G Q1 Alto impacto · alta fragilidad: Facturación Q2 Alto impacto · fragilidad media: Autenticación Q2->Q1 Q3 Impacto medio · alta fragilidad: Reporting Q3->Q2 Q4 Bajo impacto · fragilidad media: Exportación Q4->Q3

No debemos interpretar esas coordenadas como una fórmula matemática precisa.

Su utilidad principal radica en obligarnos a comparar componentes utilizando criterios explícitos.

Prompt 3. Buscar quick wins para la modernización legacy

A continuación, con el mapa de riesgos sobre la mesa, emerge otra pregunta fundamental:

¿Qué podemos mejorar ahora mismo para reducir el riesgo sin realizar cambios profundos en la lógica crítica?

Markdown
Based on:

- CURRENT_STATE_ASSESSMENT.md
- MODERNIZATION_PRIORITY_MATRIX.md

identify the highest-impact quick wins that can be implemented in the next 2-4 weeks.

The goal is to reduce technical and operational risk without modifying critical business logic.

Prioritize initiatives using:

Impact / Effort

For each quick win include:

- Problem
- Proposed action
- Expected impact
- Effort
- Dependencies
- Risks
- Capability enabled
- Success metric

MERMAID OUTPUT

Generate a flowchart using:

Current problem
→ Quick win
→ Immediate benefit
→ Future capability enabled

Generate QUICK_WINS_PLAN.md.

El output visual arrojará algo como esto:

graph LR
    LOGS["Logging insuficiente"]
    OBS["Logging estructurado"]
    VIS["Mayor observabilidad"]
    DIAG["Diagnóstico más rápido"]
    MANUAL["Despliegue manual"]
    CICD["Pipeline CI/CD"]
    SAFE["Despliegue repetible"]
    FREQ["Mayor frecuencia"]
    NOTEST["Flujos críticos sin protección"]
    SMOKE["Smoke tests"]
    DETECT["Detección temprana"]
    CHANGE["Mayor confianza para cambiar"]
    LOGS --> OBS
    OBS --> VIS
    VIS --> DIAG
    MANUAL --> CICD
    CICD --> SAFE
    SAFE --> FREQ
    NOTEST --> SMOKE
    SMOKE --> DETECT
    DETECT --> CHANGE
G LOGS Logging insuficiente OBS Logging estructurado LOGS->OBS VIS Mayor observabilidad OBS->VIS DIAG Diagnóstico más rápido VIS->DIAG MANUAL Despliegue manual CICD Pipeline CI/CD MANUAL->CICD SAFE Despliegue repetible CICD->SAFE FREQ Mayor frecuencia SAFE->FREQ NOTEST Flujos críticos sin protección SMOKE Smoke tests NOTEST->SMOKE DETECT Detección temprana SMOKE->DETECT CHANGE Mayor confianza para cambiar DETECT->CHANGE

Así, el gran valor del diagrama consiste en visibilizar que una pequeña acción táctica puede habilitar cambios mucho más ambiciosos en fases posteriores.

Prompt con IA para identificar quick wins en un proyecto de modernización legacy.
Antes de modificar el core, podemos preguntar qué acciones reducen riesgo y aumentan nuestra capacidad de cambio.

Prompt 4. Desacoplar el sistema legacy de forma progresiva

Una estrategia incremental suele requerir la extracción paulatina de ciertas capacidades del sistema heredado.

Pero esto no equivale al clásico:

«¡Convirtamos todo en microservicios!»

En cambio, se trata de identificar fronteras lógicas y razonables. El enfoque encaja con el patrón Strangler Fig descrito por Martin Fowler: sustituir capacidades de forma gradual, mantener el sistema operativo y reducir el riesgo frente a una reescritura Big Bang.

Markdown
Analyze:

- ARCHITECTURE.md
- DEPENDENCIES.md
- CRITICAL_FLOWS.md
- MODERNIZATION_PRIORITY_MATRIX.md

Identify modules that are reasonable candidates for gradual extraction using the Strangler Pattern.

For each candidate analyze:

- Business capability
- Coupling
- Change frequency
- Technical complexity
- Data ownership
- Integration points
- Migration risk
- Recommended first step

Do not assume that every module should become a microservice.

Generate STRANGLER_CANDIDATES.md.

MERMAID OUTPUT

Generate two diagrams:

1. CURRENT STATE
2. TRANSITION STATE

Clearly distinguish:

- Legacy components
- New components
- Routing layer
- Shared dependencies

Do not invent a final target architecture.

Por ejemplo:

graph LR
    USER["Usuarios"]
    ENTRY["Capa de entrada"]
    CORE["Legacy · Core"]
    BILL["Legacy · Facturación"]
    REPORT["Legacy · Reporting"]
    NOTIF_OLD["Legacy · Notificaciones"]
    NOTIF_NEW["Nueva capacidad de notificaciones"]
    USER --> ENTRY
    ENTRY --> CORE
    ENTRY --> NOTIF_NEW
    CORE --> BILL
    CORE --> REPORT
    CORE --> NOTIF_OLD
    CORE -. transición .-> NOTIF_NEW
G USER Usuarios ENTRY Capa de entrada USER->ENTRY CORE Legacy · Core ENTRY->CORE NOTIF_NEW Nueva capacidad de notificaciones ENTRY->NOTIF_NEW BILL Legacy · Facturación CORE->BILL REPORT Legacy · Reporting CORE->REPORT NOTIF_OLD Legacy · Notificaciones CORE->NOTIF_OLD CORE->NOTIF_NEW transición

No buscamos que la IA nos prescriba microservicios. Buscamos que dibuje fronteras.

Análisis con IA de candidatos para aplicar Strangler Pattern en software legacy.
La extracción progresiva debe buscar fronteras razonables, no crear servicios por defecto

Prompt 5. Generar el roadmap de modernización legacy con IA

Ahora sí: el discovery, la priorización y los quick wins ya ofrecen suficiente evidencia para estructurar el plan.

Tras entender, clasificar y priorizar, estamos en posición de pedir a la IA que estructure el roadmap.

Markdown
You are acting as a senior software architect responsible for defining an incremental modernization strategy.

Use:

- CURRENT_STATE_ASSESSMENT.md
- MODERNIZATION_PRIORITY_MATRIX.md
- QUICK_WINS_PLAN.md
- ARCHITECTURE.md
- TECHNICAL_DEBT.md
- HOTSPOTS.md
- DEPENDENCIES.md
- TESTING_ASSESSMENT.md
- SECURITY_REVIEW.md
- STRANGLER_CANDIDATES.md

Create MODERNIZATION_ROADMAP.md.

Organize initiatives into:

0-30 days
31-90 days
3-6 months
6-12 months

For every initiative include:

- Problem
- Evidence
- Proposed action
- Expected outcome
- Dependencies
- Complexity
- Implementation risk
- Rollback strategy
- Success metric

Prefer incremental modernization.

Avoid recommending a full rewrite unless strongly justified.

MERMAID OUTPUT

Generate:

1. A timeline showing the four horizons.
2. A dependency flowchart between major initiatives.
graph LR
    P0["0-30 días · observar, proteger y documentar"]
    P1["31-90 días · CI/CD, integración y automatización"]
    P2["3-6 meses · modularizar y reducir acoplamiento"]
    P3["6-12 meses · extraer capacidades y evolucionar infraestructura"]
    P0 --> P1
    P1 --> P2
    P2 --> P3
G P0 0-30 días · observar, proteger y documentar P1 31-90 días · CI/CD, integración y automatización P0->P1 P2 3-6 meses · modularizar y reducir acoplamiento P1->P2 P3 6-12 meses · extraer capacidades y evolucionar infraestructura P2->P3

Un roadmap no es solo un calendario. También debe explicar qué iniciativa habilita a la siguiente, qué dependencias condicionan cada fase y qué capacidades deben existir antes de asumir cambios de mayor riesgo.

graph LR
    OBS["Observabilidad"]
    TEST["Tests críticos"]
    CICD["CI/CD"]
    SAFE["Capacidad de cambio segura"]
    MOD["Modularización"]
    DECOUPLE["Desacoplamiento"]
    EXTRACT["Extracción progresiva"]
    OBS --> SAFE
    TEST --> SAFE
    CICD --> SAFE
    SAFE --> MOD
    MOD --> DECOUPLE
    DECOUPLE --> EXTRACT
G OBS Observabilidad SAFE Capacidad de cambio segura OBS->SAFE TEST Tests críticos TEST->SAFE CICD CI/CD CICD->SAFE MOD Modularización SAFE->MOD DECOUPLE Desacoplamiento MOD->DECOUPLE EXTRACT Extracción progresiva DECOUPLE->EXTRACT
IA generating un roadmap incremental de modernización de software legacy.
El roadmap surge como resultado natural del discovery, la priorización y la identificación de dependencias

Prompt 6. Pedir a la IA que critique su propia propuesta

Primero construir. Después cuestionar.

Invertir el rol de la IA obliga a revisar supuestos, complejidad, prioridades, alternativas y capacidad de rollback.

Markdown
Act as a skeptical CTO with extensive experience in legacy software modernization.

Review MODERNIZATION_ROADMAP.md critically.

Challenge:

- Assumptions
- Complexity
- Business value
- Dependencies
- Reversibility
- Team capacity
- Implementation risk

For each initiative ask:

- Is this really necessary?
- What happens if we do nothing?
- Can it be simplified?
- Is there a simpler alternative?
- What dependencies have we overlooked?
- What could fail?
- Is rollback possible?

Classify:

Keep
Simplify
Postpone
Remove

Generate ROADMAP_REVIEW.md.

MERMAID OUTPUT

Create a decision tree for evaluating modernization initiatives.
graph TD
    A["Nueva iniciativa"]
    B{"¿Resuelve un problema real?"}
    C{"¿Reduce riesgo o aporta valor?"}
    D{"¿Existe una opción más sencilla?"}
    E{"¿Conocemos las dependencias?"}
    F{"¿Es reversible?"}
    G{"¿Tenemos capacidad?"}
    EXEC["Ejecutar"]
    SIMPLE["Simplificar"]
    WAIT["Posponer"]
    STOP["Descartar"]
    A --> B
    B -- No --> STOP
    B -- Sí --> C
    C -- No --> STOP
    C -- Sí --> D
    D -- Sí --> SIMPLE
    D -- No --> E
    E -- No --> WAIT
    E -- Sí --> F
    F -- No --> SIMPLE
    F -- Sí --> G
    G -- No --> WAIT
    G -- Sí --> EXEC
G A Nueva iniciativa B ¿Resuelve un problema real? A->B C ¿Reduce riesgo o aporta valor? B->C STOP Descartar B->STOP No D ¿Existe una opción más sencilla? C->D C->STOP No E ¿Conocemos las dependencias? D->E No SIMPLE Simplificar D->SIMPLE F ¿Es reversible? E->F WAIT Posponer E->WAIT No G ¿Tenemos capacidad? F->G F->SIMPLE No EXEC Ejecutar G->EXEC G->WAIT No

Un buen roadmap debe poder sobrevivir a una revisión técnica hostil.

Prompt que pide a la IA actuar como CTO escéptico y revisar un roadmap técnico
Cambiar el rol del modelo permite cuestionar supuestos, complejidad y prioridades de nuestro roadmap inicial

Prompt 7. Métricas para medir la modernización del software legacy

Un proceso de modernización puede generar mucho ruido y pocos resultados tangibles. Por ello, el roadmap de modernización legacy con IA debe incluir métricas desde el principio.

Migrar a una tecnología más moderna no es sinónimo automático de éxito. Como referencia, las métricas de rendimiento de entrega de DORA ayudan a observar velocidad, estabilidad y recuperación sin reducir el análisis a la cantidad de librerías actualizadas.

La pregunta clave es otra:

¿Es ahora el sistema más fácil y menos arriesgado de modificar?

Markdown
Based on:

- MODERNIZATION_ROADMAP.md
- ROADMAP_REVIEW.md

define the key metrics required to measure modernization progress and impact.

Include:

- Technical metrics
- Delivery metrics
- Reliability metrics
- Business metrics
- Team metrics

For each metric define:

- What it measures
- Why it matters
- How to collect it
- Baseline
- Target
- Success threshold
- Measurement frequency

Include leading and lagging indicators.

Generate METRICS.md.

MERMAID OUTPUT

Generate a flowchart showing how engineering improvements are expected to produce operational and business outcomes.

Treat causal relationships as hypotheses that must be validated with real data.
graph LR
    TEST["Más protección automatizada"]
    SAFE["Cambios más seguros"]
    FAIL["Menos regresiones"]
    DEPLOY["Mayor frecuencia de despliegue"]
    MTTR["Menor tiempo de recuperación"]
    VALUE["Mayor capacidad de entregar valor"]
    TEST --> SAFE
    SAFE --> FAIL
    SAFE --> DEPLOY
    FAIL --> MTTR
    DEPLOY --> VALUE
    MTTR --> VALUE
G TEST Más protección automatizada SAFE Cambios más seguros TEST->SAFE FAIL Menos regresiones SAFE->FAIL DEPLOY Mayor frecuencia de despliegue SAFE->DEPLOY MTTR Menor tiempo de recuperación FAIL->MTTR VALUE Mayor capacidad de entregar valor DEPLOY->VALUE MTTR->VALUE

Y acompañaremos esto de métricas como:

  • Deployment Frequency.
  • Lead Time for Changes.
  • Change Failure Rate.
  • Mean Time to Recovery.
  • Incidencias críticas.
  • Dependencias fuera de soporte.
  • Cobertura de flujos críticos.
  • Pasos manuales de despliegue.
  • Tiempo necesario para modificar módulos de alto riesgo.
Prompt con IA para definir métricas de un roadmap de modernización
El éxito debe medirse por la reducción del riesgo y el aumento de la capacidad de cambio, no solo por la cantidad de librerías actualizadas.

El roadmap de modernización legacy con IA emerge de la conversación

Si analizamos todo el proceso en su conjunto, emerge un patrón evidente.

graph LR
    P["Prompt"]
    R["Respuesta estructurada"]
    A["Artefacto Markdown"]
    V["Validación humana"]
    REF["Refinamiento"]
    D["Nueva decisión"]
    P --> R
    R --> A
    A --> V
    V --> REF
    REF --> P
    V --> D
G P Prompt R Respuesta estructurada P->R A Artefacto Markdown R->A V Validación humana A->V REF Refinamiento V->REF D Nueva decisión V->D REF->P

No es una conversación casual: cada respuesta genera un artefacto técnico que aporta contexto verificable a la siguiente interacción.

  1. CURRENT_STATE_ASSESSMENT.md: consolida el estado actual.
  2. MODERNIZATION_PRIORITY_MATRIX.md: ordena riesgos y componentes.
  3. QUICK_WINS_PLAN.md: identifica mejoras de bajo riesgo.
  4. STRANGLER_CANDIDATES.md: localiza fronteras de extracción progresiva.
  5. MODERNIZATION_ROADMAP.md: organiza iniciativas y dependencias.
  6. ROADMAP_REVIEW.md: cuestiona la propuesta inicial.
  7. METRICS.md: define cómo medir el progreso real.
Ciclo iterativo de prompting con IA aplicado a ingeniería de software.
Cada respuesta produce un artefacto técnico que alimenta directamente la siguiente interacción

Prompt 8. Convertir el roadmap en un plan ejecutable

Un roadmap sigue siendo una visión a 30.000 pies de altura.

Para aterrizarlo y poder ejecutarlo, necesitamos concretar responsabilidades, dependencias, hitos y criterios de éxito a nivel de equipo.

Markdown
Create IMPLEMENTATION_PLAN.md based on:

- MODERNIZATION_ROADMAP.md
- ROADMAP_REVIEW.md
- METRICS.md

For every modernization phase define:

- Key objectives
- Prioritized actions
- Required resources
- Dependencies
- Responsible roles
- Milestones
- Success metrics
- Main risks
- Mitigation strategy
- Rollback considerations

MERMAID OUTPUT

Generate a Gantt diagram.

Requirements:

- Represent roadmap-level initiatives.
- Show dependencies using "after" whenever possible.
- Avoid excessive task detail.
- Clearly state when dates are illustrative.

Generate IMPLEMENTATION_PLAN.md.

La IA convertirá ahora la abstracción del roadmap en una estructura como esta:

gantt
    title Plan de ejecución de modernización
    dateFormat YYYY-MM-DD
    section Estabilizar
    Observabilidad :a1, 2026-09-01, 14d
    Smoke tests :a2, after a1, 14d
    section Crear capacidad
    CI/CD :b1, after a1, 30d
    Tests de integración :b2, after a2, 30d
    section Desacoplar
    Modularización :c1, after b2, 60d
    section Evolucionar
    Extracción progresiva :d1, after c1, 90d
Plan de ejecución de modernizaciónEstabilizarObservabilidad · Smoke testsCrear capacidadCI/CD · Tests de integraciónDesacoplarModularizaciónEvolucionarExtracción progresiva

Naturalmente, las fechas deben considerarse referencias temporales orientativas hasta contrastarlas con la capacidad real de entrega del equipo de ingeniería.

Prompt 9. Detectar anti-patrones de modernización legacy

Aquí podemos introducir otra potente capa de revisión.

Consiste en preguntar explícitamente a la IA qué errores son los más habituales en contextos idénticos al nuestro.

Markdown
Identify common anti-patterns in legacy modernization programs.

Use our modernization strategy as context.

For each anti-pattern include:

- Why it happens
- Warning signs
- Potential impact
- How to prevent it
- Recovery strategy

Pay special attention to:

- Big-bang rewrites
- Premature microservices
- Technology-driven modernization
- Excessive parallel change
- Lack of automated testing
- Missing observability
- Missing rollback strategies
- Obsolete documentation
- Poor stakeholder alignment

Generate MODERNIZATION_ANTI_PATTERNS.md.

MERMAID OUTPUT

Create a mindmap grouped into:

- Architecture
- Delivery
- Quality
- Operations
- Organization
graph TD
    ROOT["Riesgos de modernización"]
    ARQ["Arquitectura"]
    DELIVERY["Delivery"]
    QUALITY["Calidad"]
    OPS["Operaciones"]
    ORG["Organización"]
    BIG["Big Bang"]
    MICRO["Microservicios prematuros"]
    OVER["Sobreingeniería"]
    PARALLEL["Cambios simultáneos"]
    ROLLBACK["Sin rollback"]
    TESTS["Sin tests"]
    DEBT["Deuda invisible"]
    OBS["Sin observabilidad"]
    MANUAL["Procesos manuales"]
    ALIGN["Falta de alineación"]
    CAP["Capacidad insuficiente"]
    ROOT --> ARQ
    ROOT --> DELIVERY
    ROOT --> QUALITY
    ROOT --> OPS
    ROOT --> ORG
    ARQ --> BIG
    ARQ --> MICRO
    ARQ --> OVER
    DELIVERY --> PARALLEL
    DELIVERY --> ROLLBACK
    QUALITY --> TESTS
    QUALITY --> DEBT
    OPS --> OBS
    OPS --> MANUAL
    ORG --> ALIGN
    ORG --> CAP
G ROOT Riesgos de modernización ARQ Arquitectura ROOT->ARQ DELIVERY Delivery ROOT->DELIVERY QUALITY Calidad ROOT->QUALITY OPS Operaciones ROOT->OPS ORG Organización ROOT->ORG BIG Big Bang ARQ->BIG MICRO Microservicios prematuros ARQ->MICRO OVER Sobreingeniería ARQ->OVER PARALLEL Cambios simultáneos DELIVERY->PARALLEL ROLLBACK Sin rollback DELIVERY->ROLLBACK TESTS Sin tests QUALITY->TESTS DEBT Deuda invisible QUALITY->DEBT OBS Sin observabilidad OPS->OBS MANUAL Procesos manuales OPS->MANUAL ALIGN Falta de alineación ORG->ALIGN CAP Capacidad insuficiente ORG->CAP
Anti-patrones de modernización legacy detectados mediante IA
Preguntar qué puede salir mal ayuda a detectar patrones recurrentes y desactivarlos antes de que se conviertan en problemas reales.

Prompt 10. Utilizar un checklist antes de lanzar prompts estratégicos

Cuanto mayor impacto estratégico tenga la decisión que estamos perfilando, más importante resulta acotar la ambigüedad en nuestro prompt.

  • ¿El objetivo final está definido con claridad?
  • ¿He aportado suficiente contexto?
  • ¿Quedan delimitadas las restricciones técnicas y de negocio?
  • ¿Están separados los hechos probados de las inferencias?
  • ¿He especificado exactamente el tipo de entregable?
  • ¿Le he indicado en qué formato lo necesito?
  • ¿He establecido los criterios de éxito?
graph TD
    A["Prompt estratégico"]
    B{"¿Objetivo claro?"}
    C{"¿Contexto suficiente?"}
    D{"¿Restricciones explícitas?"}
    E{"¿Entregable definido?"}
    F{"¿Formato definido?"}
    G{"¿Criterios de calidad?"}
    H["Enviar prompt"]
    R["Revisar"]
    A --> B
    B -- No --> R
    B -- Sí --> C
    C -- No --> R
    C -- Sí --> D
    D -- No --> R
    D -- Sí --> E
    E -- No --> R
    E -- Sí --> F
    F -- No --> R
    F -- Sí --> G
    G -- No --> R
    G -- Sí --> H
G A Prompt estratégico B ¿Objetivo claro? A->B C ¿Contexto suficiente? B->C R Revisar B->R No D ¿Restricciones explícitas? C->D C->R No E ¿Entregable definido? D->E D->R No F ¿Formato definido? E->F E->R No G ¿Criterios de calidad? F->G F->R No H Enviar prompt G->H G->R No
Checklist para crear prompts estratégicos en ingeniería de software.
Asegurar objetivo, contexto, restricciones y criterios de calidad reduce drásticamente la ambigüedad en una conversación técnica con IA.

Prompt 11. Utilizar la IA como analista de riesgos

Antes de tocar una iniciativa core, cambiamos la pregunta. En lugar de pedir la solución, pedimos que se identifiquen los fallos posibles, sus desencadenantes, su impacto y las acciones de contingencia.

Markdown
Act as a technical risk assessment advisor.

Evaluate the proposed modernization initiative.

Identify:

- Technical risks
- Operational risks
- Security risks
- Data risks
- Dependency risks
- Delivery risks
- Team capacity risks

For each risk include:

- Description
- Probability
- Impact
- Risk level
- Trigger
- Mitigation
- Early warning indicator
- Contingency action

Generate RISK_REGISTER.md.

MERMAID OUTPUT

Generate a flowchart showing causal relationships between the most important risks.

Do not present speculative relationships as confirmed facts.
graph TD
    CAP["Capacidad limitada"]
    DELAY["Retrasos"]
    RUSH["Cambios apresurados"]
    INCIDENT["Más incidentes"]
    LOAD["Mayor carga operativa"]
    DEBT["Más deuda técnica"]
    CAP --> DELAY
    DELAY --> RUSH
    RUSH --> INCIDENT
    INCIDENT --> LOAD
    LOAD --> CAP
    RUSH --> DEBT
    DEBT --> DELAY
G CAP Capacidad limitada DELAY Retrasos CAP->DELAY RUSH Cambios apresurados DELAY->RUSH INCIDENT Más incidentes RUSH->INCIDENT DEBT Más deuda técnica RUSH->DEBT LOAD Mayor carga operativa INCIDENT->LOAD LOAD->CAP DEBT->DELAY

Los riesgos rara vez emergen de forma aislada.

Casi siempre configuran bucles que se retroalimentan y pueden bloquear por completo el progreso de un equipo.

Registro de riesgos generado mediante prompting con IA para una modernización de software
El análisis de riesgos permite detectar el efecto dominó entre falta de capacidad, retrasos, incidentes y nueva deuda técnica antes de empezar

Prompt 12. Iterar sobre la respuesta en lugar de conformarse con la primera

La principal diferencia entre utilizar la IA como un simple motor de búsqueda y utilizarla como una verdadera herramienta de ingeniería es, precisamente, la iteración.

Rara vez la primera propuesta es la definitiva.

graph TD
    START["Inicio"]
    P1["Prompt inicial"]
    R1["Respuesta V1"]
    EVAL{"Evaluar respuesta"}
    REFINE["Refinar con más datos"]
    COMPARE["Comparar alternativas"]
    VALIDATE["Validar con evidencia"]
    R2["Respuesta V2"]
    FINAL["Resultado final"]
    START --> P1
    P1 --> R1
    R1 --> EVAL
    EVAL -- Faltan datos --> REFINE
    EVAL -- Hay alternativas --> COMPARE
    EVAL -- Es adecuada --> VALIDATE
    REFINE --> R2
    R2 --> EVAL
    COMPARE --> REFINE
    VALIDATE --> FINAL
G START Inicio P1 Prompt inicial START->P1 R1 Respuesta V1 P1->R1 EVAL Evaluar respuesta R1->EVAL REFINE Refinar con más datos EVAL->REFINE Faltan datos COMPARE Comparar alternativas EVAL->COMPARE Hay alternativas VALIDATE Validar con evidencia EVAL->VALIDATE Es adecuada R2 Respuesta V2 REFINE->R2 COMPARE->REFINE FINAL Resultado final VALIDATE->FINAL R2->EVAL

Tras una respuesta, podemos afinar el tiro con instrucciones muchísimo más granulares:

Markdown
Make the proposal more conservative.

Reduce implementation complexity.

Assume the team cannot stop feature development.

Identify what can be postponed.

Give me three alternative approaches.

Challenge your previous assumptions.

Show me the trade-offs.

Reduce the plan to the highest-value initiatives.

What information are you missing before making this recommendation?

Ya no somos meros receptores de una respuesta; somos arquitectos que moldean y construyen junto al modelo.

Proceso iterativo para mejorar respuestas de IA mediante prompting
Pedir, evaluar, aportar contexto y refinar de forma ágil suele producir mejores resultados que intentar redactar un «prompt maestro» gigante

Prompt 13. Crear una plantilla reutilizable para el equipo

Al dominar esta dinámica iterativa, conviene destilar los aprendizajes en un framework o plantilla compartida para estandarizar el proceso dentro del equipo de ingeniería.

Markdown
# ROLE

Act as [ROLE] with expertise in [DOMAIN].

# CONTEXT

We are working on [SYSTEM / PROJECT].

Current situation:

[CURRENT STATE]

Constraints:

[TECHNICAL / BUSINESS / TIME / TEAM CONSTRAINTS]

# OBJECTIVE

Help me achieve:

[SPECIFIC OBJECTIVE]

# TASKS

1. [TASK]
2. [TASK]
3. [TASK]

# INPUTS

Use:

[FILES / DOCUMENTS / CODE / DATA]

# OUTPUT

Generate:

[EXPECTED DELIVERABLE]

Use:

[MARKDOWN / TABLE / MERMAID / JSON / OTHER]

# QUALITY CRITERIA

The result must be:

- Evidence-based
- Incremental
- Actionable
- Risk-aware
- Explicit about assumptions

# MERMAID

Whenever visual representation improves understanding:

- Select the appropriate Mermaid diagram.
- Use only relationships supported by evidence.
- Prefer small diagrams.
- Explain the purpose of each diagram.
- Mark inferred relationships.

# VALIDATION

Clearly distinguish:

- Confirmed facts
- Inferences
- Unknowns requiring human validation

Before answering, identify critical missing information.
graph LR
    ROLE["Rol"]
    CONTEXT["Contexto"]
    OBJ["Objetivo"]
    TASKS["Tareas"]
    INPUTS["Entradas"]
    OUTPUT["Entregable"]
    QUALITY["Calidad"]
    VISUAL["Mermaid"]
    VALID["Validación"]
    ROLE --> CONTEXT
    CONTEXT --> OBJ
    OBJ --> TASKS
    TASKS --> INPUTS
    INPUTS --> OUTPUT
    OUTPUT --> QUALITY
    QUALITY --> VISUAL
    VISUAL --> VALID
G ROLE Rol CONTEXT Contexto ROLE->CONTEXT OBJ Objetivo CONTEXT->OBJ TASKS Tareas OBJ->TASKS INPUTS Entradas TASKS->INPUTS OUTPUT Entregable INPUTS->OUTPUT QUALITY Calidad OUTPUT->QUALITY VISUAL Mermaid QUALITY->VISUAL VALID Validación VISUAL->VALID
Plantilla de prompting reutilizable para tareas de ingeniería de software con IA.
Un esqueleto estructurado permite escalar y aplicar el mismo rigor al evaluar arquitecturas, auditar seguridad, trazar deuda técnica o diseñar migraciones

El repositorio como memoria del proceso de modernización

Trabajar con esta cadencia genera un efecto colateral de un valor incalculable para cualquier organización.

Cada conversación genera documentación rica que podemos —y debemos— consolidar en nuestro repositorio junto al código base.

Markdown
/docs

TECHNICAL_INVENTORY.md
ARCHITECTURE.md
CURRENT_STATE_ASSESSMENT.md
MODERNIZATION_PRIORITY_MATRIX.md
QUICK_WINS_PLAN.md
STRANGLER_CANDIDATES.md
MODERNIZATION_ROADMAP.md
ROADMAP_REVIEW.md
METRICS.md
IMPLEMENTATION_PLAN.md
MODERNIZATION_ANTI_PATTERNS.md
RISK_REGISTER.md

Al estar basados en texto plano y Markdown, integramos de forma natural tablas de decisión y diagramas Mermaid autogenerados.

graph LR
    CODE["Código"]
    DOCS["Documentación"]
    DIAGRAMS["Mermaid"]
    DECISIONS["Decisiones"]
    PROMPTS["Prompts"]
    CONTEXT["Contexto técnico"]
    AI["IA"]
    ANALYSIS["Nuevo análisis"]
    CODE --> CONTEXT
    DOCS --> CONTEXT
    DIAGRAMS --> CONTEXT
    DECISIONS --> CONTEXT
    PROMPTS --> CONTEXT
    CONTEXT --> AI
    AI --> ANALYSIS
    ANALYSIS --> DOCS
G CODE Código CONTEXT Contexto técnico CODE->CONTEXT DOCS Documentación DOCS->CONTEXT DIAGRAMS Mermaid DIAGRAMS->CONTEXT DECISIONS Decisiones DECISIONS->CONTEXT PROMPTS Prompts PROMPTS->CONTEXT AI IA CONTEXT->AI ANALYSIS Nuevo análisis AI->ANALYSIS ANALYSIS->DOCS

Bajo este paradigma, los documentos dejan de ser simples repositorios estáticos para humanos. Además, el roadmap de modernización legacy con IA queda conectado con las evidencias, decisiones y validaciones que justifican cada etapa.

Se convierten en vectores de contexto preprocesado, listos para realimentar futuras conversaciones con modelos de IA.

La IA propone, la ingeniería decide

Debemos tener algo claro: ninguno de estos prompts convierte, por arte de magia, la sugerencia de una LLM en una decisión estratégica infalible.

Un modelo puede leer todo tu repositorio en segundos.

Puede cruzar variables, identificar acoplamientos, detectar vulnerabilidades latentes y trazarte alternativas de rediseño maravillosas.

Pero siempre será ciego frente a componentes contextuales que, para la ingeniería real, son críticos:

  • La realidad presupuestaria.
  • Los compromisos comerciales inminentes.
  • El nivel de madurez o el estrés actual del equipo.
  • Cómo evoluciona el roadmap de producto a corto plazo.
  • Por qué ciertas decisiones se tomaron de una forma concreta.
  • La burocracia y estructura de la propia organización.

La IA amplía el análisis. La ingeniería conserva la decisión.

El modelo puede acelerar la lectura, el contraste y la generación de alternativas, pero no conoce por completo el contexto organizativo, comercial y humano.

El valor de no buscar el «prompt perfecto»

Existe una tendencia habitual cuando empezamos a experimentar con herramientas de inteligencia artificial generativa.

Perseguimos la ilusión del «prompt mágico».

Esa mega-instrucción que resuelva de un plumazo todo nuestro embrollo arquitectónico al primer intento.

Cuando nos enfrentamos a sistemas legacy, la estrategia más sólida es radicalmente distinta.

El secreto no reside en diseñar el prompt perfecto, sino en orquestar una excelente conversación.

Una conversación técnica fluida en la que:

  • inyectamos capas progresivas de contexto;
  • exigimos análisis focalizados;
  • obligamos a la herramienta a generar representaciones visuales;
  • deslindamos sistemáticamente evidencias empíricas de inferencias probables;
  • cuestionamos de frente las recomendaciones;
  • reducimos el radio de impacto de las soluciones propuestas;
  • desafiamos al modelo para que aporte caminos alternativos;
  • y blindamos las decisiones con métricas de validación.
graph LR
    UNDERSTAND["Entender"]
    VISUALIZE["Visualizar"]
    QUESTION["Cuestionar"]
    PRIORITIZE["Priorizar"]
    PLAN["Planificar"]
    EXECUTE["Ejecutar"]
    MEASURE["Medir"]
    LEARN["Aprender"]
    UNDERSTAND --> VISUALIZE
    VISUALIZE --> QUESTION
    QUESTION --> PRIORITIZE
    PRIORITIZE --> PLAN
    PLAN --> EXECUTE
    EXECUTE --> MEASURE
    MEASURE --> LEARN
    LEARN --> UNDERSTAND
G UNDERSTAND Entender VISUALIZE Visualizar UNDERSTAND->VISUALIZE QUESTION Cuestionar VISUALIZE->QUESTION PRIORITIZE Priorizar QUESTION->PRIORITIZE PLAN Planificar PRIORITIZE->PLAN EXECUTE Ejecutar PLAN->EXECUTE MEASURE Medir EXECUTE->MEASURE LEARN Aprender MEASURE->LEARN LEARN->UNDERSTAND

La verdadera misión de la IA frente al software legacy

En definitiva, el valor de un roadmap de modernización legacy con IA no está en observar cómo el modelo genera líneas de código nuevo, sino en comprimir los tiempos de descubrimiento, contraste y análisis.

El verdadero poder consiste en utilizar la IA como un embudo que convierte información difusa y caótica en decisiones ejecutables y trazables.

Y en este marco, Mermaid aporta una capa de pragmatismo espectacular.

Fuerza a la inteligencia artificial —y a nosotros mismos— a mapear la abstracción en bloques, dependencias, ciclos de vida y fronteras auditables.

Modernizar software legacy no empieza reescribiendo. Empieza comprendiendo.

Solo cuando conocemos las dependencias, los riesgos, los flujos críticos y las restricciones podemos decidir dónde intervenir de forma objetiva, incremental y segura.

Lecturas relacionadas sobre arquitectura y modernización

¿Tienes un sistema legacy y no sabes por dónde empezar?

Antes de fantasear con una reescritura épica, la adopción del framework de moda o la implantación de una microarquitectura, el paso cero es reconstruir el contexto.

Analiza el código base. Extrae la topología del sistema. Genera los mapas de arquitectura. Identifica los puntos de fricción. Prioriza sin piedad. Pregunta a la IA. Cuestiona duramente sus respuestas. Y utiliza cada ciclo para iluminar zonas de sombra.

La mejor estrategia de modernización jamás arranca preguntándole a un LLM «qué stack debo usar». Arranca exigiéndole respuestas y evidencias sobre el sistema que ya soportas en producción, forzándole a justificar todo aquello que dice haber comprendido.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Sobre mí

Soy Andrés Martínez Soto, CTO y consultor EdTech especializado en Moodle, LTI, IA educativa, arquitectura de plataformas e integración de sistemas educativos.

Ver perfil profesional

¿Necesitas ordenar tu ecosistema EdTech?

Te ayudo a revisar plataformas, LMS, integraciones, automatizaciones, datos e IA educativa con una visión técnica y pedagógica.

Buscar