Proceso de modernización de aplicaciones

Contenido

Este proceso define el enfoque común que permitirá evaluar el portfolio de aplicaciones de los organismos, seleccionar estrategias adecuadas (TIME + 7R) y ejecutar planes de modernización de forma trazable, coherente y alineada con los objetivos institucionales.


(*)Este ciclo se aplica de forma iterativa, adaptable y transversal en todos los organismos sectoriales

Identificación: Criterios de Evaluación

Esta fase consiste en la elaboración del inventario de aplicaciones del organismo, en la que deben categorizarse las aplicaciones en base a los datos identificativos de estas.
El Organismo genera utilizando la plantilla de inventario de aplicaciones proporcionada por la Oficina de Arquitectura, el inventario de aplicaciones completo.

Por cada una de las aplicaciones, se rellenan los datos solicitados de la forma más completa posible.

En algunos casos será necesario mantener reuniones o entrevistas con responsables de negocio o técnicos de las distintas áreas.

Es posible utilizar un enfoque ágil e iterativo en esta fase, preseleccionándose grupos o conjuntos de aplicaciones priorizadas, y evaluar los grupos de forma secuencial para no bloquear el resto de fases.

Actores: 

  • Organismos de la ADA

Información de entrada: N/A

Información de salida:

  • Inventario de aplicaciones
  • Datos de la aplicación 

Facilitadores:

  • Plantilla inventario de aplicaciones.
  • Cuestionarios técnicos y funcionales.

En el inventario de aplicaciones deberán volcarse los datos identificativos de la aplicación, con objeto de realizar una categorización y propuesta de modernización adecuada a la realidad de cada aplicación. 

Deberán incluirse los datos de los siguientes apartados:

 

Datos Básicos

ID
Aplicación
Acrónimo
Área competencial
Centro directivo

Datos de Negocio

Tipología
Tipo de negocio
Impacto en procesos clave
Redundancia funcional

Datos Técnicos

Arquitectura
Componentes
Tecnología
Complejidad
Documentación
Soporte
Dependencias sistemas Legacy
Obsolescencia (Campo calculado)
 

Datos de Operación

Coste soporte
Coste mantenimiento
Dependencia fabricante
Dependencia proveedor
Usuarios concurrentes
Disponibilidad
Público

Datos de Modernización

Clasificación estratégica (TIME)
Táctica modernización (7R) (Campo calculado)
Arquitectura destino (Campo calculado)
Tecnología destino (Campo calculado)

Datos de eficiencia y coste real: situación actual frente a la futura

La modernización no siempre es económicamente eficiente. Hay casos en los que algunas aplicaciones obsoletas tienen un rendimiento operativo excepcional gracias a la profesionalización del equipo y la agilidad de cambio aunque las tecnologías sean obsoletas. Forzar su transformación sin una justificación clara puede tener un coste mayor que el beneficio obtenido y debe reflejarse en el análisis de las aplicaciones.

Evaluación estratégica (TIME)

Esta fase condiciona relevantemente las opciones y propuestas que se presentarán para cada una de las aplicaciones del inventario del Organismo, al fijar la estrategia de modernización.
El Organismo debe decidir por cada aplicación de su inventario, y apoyándose en los datos ya registrados en la plantilla de inventario de aplicaciones, la clasificación estratégica por aplicación.

Esta clasificación estratégica está basada en el modelo TIME, y deberá establecerse en base a cuatro opciones:

  • Tolerar
  • Invertir
  • Mantener
  • Eliminar

Para apoyar esta decisión, se celebrarán reuniones de negocio y técnicas para aclarar la información necesaria y consensuar la estrategia óptima por aplicación, si fuese necesario.

Además, podrá contarse con el apoyo de otros grupos interesados: Oficina de Arquitectura, DevSecOps, Explotación, …

Actores: 

  • Organismos de la ADA

Información de entrada: 

  • Inventario de aplicaciones.
  • Datos de la aplicación

Información de salida:

  • Evaluación estratégica del inventario de aplicaciones en base al modelo TIME.

Facilitadores:

  • Marco de evaluación estratégica.
  • Guía de aplicación del modelo TIME.

Evaluación acción modernización (7R)

La fase evaluación acción modernización tiene por objetivo analizar y proponer las distintas propuestas de modernización que mejor se adapta a las aplicaciones según su naturaleza y requerimientos.
Partiendo de la información facilitada por el Organismo en la plantilla de inventario de aplicaciones, se introducen los datos en un activo para realizar el cálculo y propuesta de las mejores opciones para realizar la modernización de cada aplicación.

Tras obtener las propuestas, la Oficina de Arquitectura estudia las propuestas y las ordena teniendo en cuenta:

  • Estrategia de modernización del organismo y de la aplicación.
  • Tecnologías origen y arquitecturas de referencia publicadas.
  • Costes, prioridad y plazos.
  • Viabilidad en base a los datos de las aplicaciones.

Por último, se elabora un informe y se hace entrega al Organismo en una reunión para explicar la decisión y las distintas alternativas propuestas.

Actores: 

  • Oficina de Arquitectura 

Información de entrada: 

  • Datos de la aplicación
  • Selección de evaluación estratégica 

Información de salida:

  • Propuesta de modernización. (Arquitectura de referencia + tecnologías)
  • Listado de activos y facilitadores para la modernización.

Facilitadores:

  • Calculadora de estrategias de modernización.
  • Activos de la Agencia.

Priorización y planificación

Esta fase consolida la estrategia de modernización de aplicaciones definida en fases anteriores, detallándose una priorización de aplicaciones a modernizar y planificación de cada una de ellas.

 El Organismo, tras recibir la propuesta de modernización para una o varias aplicaciones, estudia la información y procede a priorizar y planificar la modernización, si aprueba la propuesta.

Como primer paso, puede realizarse una estimación de costes de la migración, apoyándose en la calculadora de costes de modernización, que servirá como dato complementario para realizar la priorización y estudiar su viabilidad.

Tras estimarse el coste, y teniendo la propuesta de modernización clara, se realiza la priorización de aplicaciones. Se identifican las aplicaciones aprobadas para modernizar, y se encajan con las fechas y tiempos previstos.

Una vez priorizadas las aplicaciones, se acomete por parte del equipo de desarrollo del Organismo, una planificación por fases de la modernización de la aplicación, para su posterior ejecución.

Actores: 

  • Organismos de la ADA

Información de entrada: 

  • Propuesta de modernización 

Información de salida:

  • Priorización de aplicaciones 
  • Planificación de modernización de aplicación.

Facilitadores:

  • Patrones de arquitectura para la modernización de aplicaciones
  • Calculadora costes modernización

Ejecución

La última fase es la que materializa la ejecución de la estrategia de modernización propuesta.

El Organismo en base a la estrategia de modernización de la aplicación, patrón de modernización y planificación, comienza la ejecución.

Idealmente, se propone un enfoque metodológico ágil e iterativo, en el que puede existir una prueba de concepto o MVP para implementar un caso de uso, y contrastar la idoneidad de la solución.

El equipo de desarrollo utilizará los facilitadores publicados para cada tecnología origen / destino que permitan agilizar y minimizar los costes de desarrollo.

La Oficina de Arquitectura en colaboración con el equipo de desarrollo actualiza la base de datos de conocimiento para la modernización de aplicaciones incluyendo las consideraciones de la modernización para su conocimiento por parte de otros equipos de desarrollo.

Actores: 

  • Organismos de la ADA

Información de entrada: 

  • Planificación de modernización de aplicación.
  • Propuesta técnica de modernización de aplicación.

Información de salida:

  • N/A

Facilitadores:

  • Facilitadores para la automatización de la modernización de aplicaciones.
  • Base de datos de conocimiento de modernización de aplicaciones.
     

Debido a la magnitud y complejidad de esta fase, se detallan las distintas actividades y tareas que la componen para garantizar una ejecución de la modernización en base a una metodología común para alinear el proceso de modernización entre los distintos proyectos.
 


 

ACTIVIDADES

TAREAS

Configuración de la herramienta de modernización y parametrización del escenario de modernización

  • Definición de reglas de transformación (por lenguaje, librerías, arquitectura).

  • Configuración de rutas, estructuras de carpetas, recursos externos.

  • Inclusión de plantillas para estructura moderna (por ejemplo, capas de microservicio, controladores REST, DAOs, etc.).

  • Revisión de patrones personalizados a incorporar (nomenclatura, estructuras modulares, dependencias corporativas, logging, seguridad).

 

Definición de requisitos funcionales, técnicos y criterios de aceptación

  • Identificación de requisitos funcionales que deban verificarse tras la modernización.

  • Identificación de requisitos técnicos.

  • Elaboración plan de pruebas integradas.

  • Elaboración plan de pruebas de aceptación.

  • Elaboración de criterios de aceptación.

Gestión de incidencias y corrección

 

  • Análisis sintáctico y semántico del código origen.

  • Aplicación de reglas de modernización y refactor automático.

  • Generación del nuevo código fuente siguiendo la arquitectura de referencia.

  • Documentación automática (Swagger, diagramas de dependencias, README.md, …)

  • Registro de logs de modernización y errores del proceso.

Aceptación formal y cierre de ejecución

 

  • Revisión manual del nuevo código generado.

  • Análisis estático del código (Sonar, JUnit, DependencyCheck, …)

  • Verificación del cumplimiento según los estándares corporativos.

  • Comprobación de la integridad de paquetes y módulos.

  • Documentación de incidencias técnicas detectadas en cuanto a calidad, estructura y diseño del código nuevo.

Ejecución de pruebas de validación

 

  • Pruebas funcionales automatizadas ( test unitarios , test integrados, test de regresión)

  • Pruebas de aceptación funcional por parte del usuario de negocio.

  • Pruebas de rendimiento y carga.

  • Validación de seguridad (vulnerabilidades)

  • Comparación resultados de pruebas con la versión actual de la aplicación.

  • Elaboración de informe de aprobación de pruebas.

Gestión de incidencias y corrección

 

  • Clasificación de errores (bloqueantes, críticos, mayores, menores, evolutivos).

  • Ajustes manuales o reconfiguración de reglas de la herramienta de modernización.

  • Compilación o nueva ejecución del paso de modernización.

  • Actualización de documentación y registro de incidencias.

Aceptación formal y cierre de ejecución

 

  • Revisión del checklist de criterios de aceptación.

  • Aprobación del área usuaria o responsable de negocio.

  • Entrega de artefactos: código fuente, documentación, scripts, evidencias, …

  • Registro de versión en repositorio corporativo.

  • Registro de lecciones aprendidas, feedback, y actualización de la base de conocimiento.