Una aplicación antigua no es automáticamente una mala aplicación. A veces contiene años de decisiones, excepciones y formas de trabajar que un producto estándar no reproduce. El problema aparece cuando ese conocimiento queda encerrado en un sistema que nadie se atreve a tocar.
Caso real anonimizado. El proyecto se realizó sobre un ERP industrial Java de escritorio. Las imágenes usan nombres, códigos y valores ficticios. No publicamos información del cliente ni atribuimos ahorros que no fueron medidos.
El punto de partida: software útil, pero difícil de mantener
El sistema seguía siendo parte de la operativa diaria. Gestionaba pedidos, lanzamientos, partes, albaranes, operarios, clientes y documentación. No era un programa obsoleto por no resolver su función; era un programa con un riesgo creciente porque su evolución dependía de conocimiento técnico que ya no estaba disponible.
Reemplazarlo de golpe habría obligado a trasladar datos, procesos y hábitos de uso. Antes de plantear una migración, revisamos qué seguía funcionando, qué partes eran críticas y si existía una base recuperable.

Fase 1: recuperar el control técnico
La primera entrega no fue una pantalla nueva. Fue volver a entender el sistema. Se revisaron el código Java, la interfaz Swing, la capa de acceso a datos con Hibernate, la estructura de MySQL y la generación de documentos.
Esta fase permitió localizar dependencias, corregir incidencias y preparar un entorno en el que los cambios pudieran probarse antes de llegar a producción. Sin ese trabajo previo, añadir funciones habría sido rápido solo en apariencia.
Fase 2: evolucionar sin romper la operativa
Con una base controlada, se pudieron abordar mejoras concretas en los módulos existentes. La prioridad fue conservar la forma de trabajo conocida por los usuarios y reducir el riesgo de cada cambio.
- Mantenimiento y evolución del código existente.
- Revisión de consultas y tratamiento de datos.
- Mejoras en la gestión de partes y documentación.
- Generación de PDF y uso de códigos de barras.
- Preparación de puntos de integración con otras herramientas.

Fase 3: sacar funciones auxiliares fuera del núcleo
No todo tiene que programarse dentro del ERP. Los procesos de aviso, validación, generación documental o intercambio de información pueden coordinarse mediante automatizaciones. Así se evita seguir agrandando una aplicación ya compleja.
En este proyecto se incorporaron flujos con n8n alrededor del sistema y un cuadro de mando con Metabase. La aplicación continuó resolviendo la operativa; las nuevas herramientas asumieron funciones para las que estaban mejor preparadas.

El resultado real
Se recuperó la capacidad de mantener y evolucionar una aplicación crítica. Eso no significa que el sistema haya dejado de necesitar trabajo ni que cualquier software antiguo deba conservarse. Significa que, en este caso, la base existente tenía valor suficiente para justificar una renovación progresiva.
La decisión importante no fue «Java antiguo o aplicación nueva». Fue elegir qué conservar, qué corregir y qué sacar a herramientas modernas para reducir riesgo sin interrumpir el trabajo diario.
Qué aprendimos
- Antes de sustituir un ERP a medida hay que medir el conocimiento que contiene.
- La primera fase debe recuperar control, pruebas y capacidad de mantenimiento.
- Automatización y analítica pueden añadirse alrededor del núcleo existente.
- Modernizar por fases no es posponer el problema: es dividirlo en decisiones comprobables.
Preguntas frecuentes
¿Siempre merece la pena recuperar una aplicación antigua?
No. Si el código, los datos o la arquitectura presentan un riesgo desproporcionado, sustituir puede ser la opción sensata. La evaluación inicial sirve precisamente para no decidir por intuición.
¿Hay que convertir Java Swing en una aplicación web?
No necesariamente. Puede mantenerse el escritorio, renovar módulos concretos o crear servicios y nuevas interfaces alrededor. La decisión depende del uso real, no de una moda tecnológica.
Si tienes una aplicación que todavía aporta valor pero se ha quedado sin mantenimiento, puedes conocer nuestro enfoque de modernización progresiva o contarnos el caso sin compromiso.
