Después de un primer post sobre las razones que llevan a nuestros clientes a plantearse proyectos de modernización y migración de aplicaciones, en esta segunda entrada voy a extractar aquellas características comunes a los proyectos que Xeridia realiza en este ámbito.
Si sólo hubiera que señalar una esta sería la automatización. Aunque haya casos donde la automatización plena no es posible, el enfoque de este tipo de proyectos siempre tiene esa automatización como línea principal. Se logra así una solución de alta calidad, uniforme, verificable y de coste predecible.
Hacer el proyecto en modo asistencia técnica es una mala opción pues se incrementan los tiempos, se involucra a más equipos por parte del cliente, los costes son más elevados y las calidades en el mejor de los casos no serán uniformes.
Tampoco suele ser suficiente una aproximación de “industrialización”, donde se normalizan las actividades y se incorporan algunas ayudas tecnológicas a la migración. Se mejoran parámetros respecto a la asistencia técnica, pero se requiere una disciplina férrea de gestión y ejecución para garantizar unos mínimos en uniformidad y calidad de producto resultante.
No siempre es fácil “medir” el grado de automatización de un proyecto de este tipo. Un criterio que se puede utilizar es la dedicación de los equipos de desarrollo del cliente, que debe ser baja. Los proyectos más automatizados se realizan junto con un departamento de Arquitectura, quedando el equipo de desarrollo del cliente como soporte de alto nivel, principalmente funcional.
A continuación detallo otras características que aparecen con alguna frecuencia en este tipo de proyectos:
- Proyecto e inventario de Aplicaciones
La mayor parte de los proyectos tienen una etapa larga de preparación y análisis por parte del cliente, que debería incluir pilotos. La participación del proveedor, y en todo caso el conocimiento de estas fases previas, es muy conveniente. Aportando los perfiles necesarios, también funcionales.
En estas primeras etapas existirá una fase de valoración del inventario de aplicaciones a modernizar o migrar con todos sus componentes, no solo los principales. Un inventario incompleto incrementará el plazo y el coste del proyecto, pudiendo llegar a la inviabilidad del mismo.
- Herramientas tecnológicas
Si bien los proveedores solemos disponer de herramientas utilizadas en proyectos previos o bien tener algunas de carácter más general, éstas siempre se tendrán que adaptar al caso específico. Ante la preocupación habitual de los clientes en relación al coste de propiedad del software, con frecuencia se propone el uso de herramientas Open Source, pero no se debe ser dogmático y utilizar las herramientas que mejor resuelvan la migración, especialmente si se tratan datos en entornos transaccionales exigentes.
También es habitual que como resultado de los proyectos se incluyan algunas herramientas para la gestión de la nueva plataforma. Con una visión de futuro encajando o ayudando a otras estrategias del cliente, como puede ser DevOps.
- Proceso iterativo
La ejecución de los procesos de migración normalmente requiere de iteraciones. Las herramientas se ajustan al proyecto específico, se convierten las aplicaciones, se detectan incidencias en procesos de prueba, se ajustan de nuevo las herramientas, etc. El resultado de estas iteraciones cubre cerca del 100% de los requerimientos, aunque hay dependencia de factores tales como,
- Calidad de la arquitectura de la plataforma origen. Y conocimiento por parte de los equipos del cliente.
- Seguimiento real que los equipos de desarrollo hicieron en su momento de los estándares definidos y/o exigidos por esa arquitectura.
- Conocimiento de la arquitectura destino, que siempre deberá ser alto. Normalmente este destino suele ser mejor conocido por el cliente y está más y mejor documentado.
- Gestión de las aplicaciones migradas
Los clientes necesitan tener control y capacidad de evolución sobre las aplicaciones modernizadas o migradas. Sin dependencias obligadas al proveedor que realizó el proceso.
Los automatismos aplicados y las herramientas utilizadas no deben generar código que sea poco entendible para el personal técnico del cliente. Ni otras situaciones extrañas. Esto, junto con la documentación del proyecto y si fuera necesaria la formación al cliente, permitirá la evolución y el mantenimiento de las aplicaciones migradas.
Algunos proyectos parten con una carencia inicial de documentación y con déficits en el conocimiento funcional sobre lo que se tiene que migrar. Los procesos de migración deberán incluir la documentación necesaria que estará accesible normalmente mediante sistemas navegables.
- Rendimiento
Es una regla fija: el rendimiento de la solución modernizada siempre tiene que ser igual o superior que el de la previa. Los proyectos en todos los casos, pero muy especialmente cuando se moderniza/migra el gestor de los datos (ficheros, bases de datos), incluirá la optimización del rendimiento.
- Control de riesgos y seguimiento
Como en cualquier otro proyecto, y si cabe más porque en muchos casos no se obtienen mejoras funcionales, se dispondrá de partida de un análisis de riesgos y sus mecanismos de mitigación. Con un conjunto de indicadores objetivos bien definidos que permitan seguir con claridad el avance del proyecto.
Si las características de tus proyectos coinciden con algunas de las que aquí descritas, desde Xeridia te podemos ayudar con la modernización y transformación de tus aplicaciones, pues disponemos de los equipos y la experiencia necesaria para realizarlos.
Avelino Carrizo es Gerente de Consultoría de Sector Financiero en Xeridia