Una plataforma desarrollada durante varios años sin prestar mayor atención a a algunas buenas prácticas de desarrollo (integración continua, test-automatizados, trazabilidad de artefactos, control de la configuración, separación de ambientes, etc). Desarrollada por una software factory externa a la organización.
En un momento la organización decide cambiar de software factory y es ahí donde entramos somos.
Nos encontramos con una plataforma legacy, con arquitectura monolítica, issues de performance, corriendo sobre máquinas físicas (nada de cloud, ni virtualización), sobre la que el cliente espera que agreguemos nuevas funcionalidades. La visión es ir hacia una arquitectura de micro-servicios corriendo en la nube. Este desafío nos plantea una seria de interrogantes:
- Cómo organizar el equipo para poder dar soporte a la plataforma actual y al mismo tiempo desarrollar nuevas funcionalidades
- Cómo mitigar los riesgos de introducir modificaciones sobre una plataforma legacy
- Cómo vivir en una infraestructura mixta cloud y on-premise
- Cómo mantener la motivación al trabajar sobre código legacy/frágil escrito por terceros
- Cómo introducir la nueva arquitectura basada en nuevas tecnologías de una forma no disruptiva para el negocio y los usuarios
Esta es la situación que estoy afrontando en mi proyecto actual y es también la temática de una charla/presentación que en la que empecé a trabajar esta mañana.
Nico, donde vas a dar la charla?
¡Aún no lo sé! Donde quieran escucharme, jajajaj.
Tengo la costumbre de ir preparando material a medida que voy aprendiendo cosas en los proyectos. Luego las comparto cuando voy a alguna conferencia o dependiendo del tema las puedo uso para mis clases en la universidad.