Cuando empecé a trabajar como desarrollador full stack en FARAMAX, me encontré con un panorama que no era inusual en empresas que han crecido al ritmo de la urgencia: código anticuado, procesos informales y una ausencia casi total de prácticas modernas de desarrollo. Nuestro ERP, pieza central para la empresa, estaba construido con PHP7, mezclado con JavaScript vanilla y sin ningún tipo de control de versiones. Todo funcionaba… hasta que dejaba de hacerlo.
El punto de partida
Lo primero que me llamó la atención fue que no usábamos ningún sistema de control de versiones. Cada cambio se hacía sobre el servidor local, y si algo fallaba, se solucionaba «a mano». No había backups automáticos, ramas de trabajo, ni documentación clara de los cambios. Esto dificultaba la colaboración y aumentaba enormemente el riesgo en cada despliegue.
Además, el backend estaba escrito en un estilo procedural, sin separación de responsabilidades, y con poca reutilización del código. No existían linters, ni convenciones de estilo. Cada desarrollador tenía su propia forma de escribir y estructurar el código, lo que generaba una base difícil de mantener y escalar.
Primer paso: Git y GitHub
Sabía que para cambiar esto necesitaba empezar por la base: el control de versiones. Comencé por introducir Git en mi propio flujo de trabajo. Documenté bien el proceso, preparé un pequeño manual y realicé sesiones de formación informales con mis compañeros. Al principio hubo cierta resistencia —»esto nos va a hacer ir más lentos», «es demasiado complicado», «yo prefiero trabajar como siempre»— pero poco a poco fuimos adoptándolo como equipo.
La llegada de GitHub trajo consigo organización: issues, ramas por funcionalidad, pull requests con revisiones de código, y un registro claro de cada cambio. Esta transparencia nos permitió colaborar mejor y tener más confianza al desplegar nuevas versiones.
El salto a PHP 8 y la Programación Orientada a Objetos
El siguiente reto fue modernizar el backend. Propuse migrar a PHP 8. Esto no solo nos ofrecía mejoras de rendimiento y nuevas características del lenguaje, sino que también nos obligaba a repensar cómo escribíamos nuestro código.
Implementamos la Programación Orientada a Objetos (OOP) desde cero, reorganizando el código en clases con responsabilidades claras. Esto nos permitió aplicar los principios SOLID, especialmente la separación de responsabilidades y la inyección de dependencias. También introduje linters y herramientas de análisis estático para mejorar la calidad del código y detectar errores antes de que llegaran a producción.
Este cambio requirió paciencia y liderazgo. Tuve que explicar con ejemplos concretos cómo escribir código orientado a objetos podía hacer que nuestras funcionalidades fueran más fáciles de mantener, testear y extender.
La revolución del frontend: React y API REST
Una vez que el backend fue más robusto, llegó el momento de modernizar el frontend. El JavaScript vanilla no escalaba, y cualquier cambio visual implicaba tocar múltiples archivos con dependencias implícitas.
Decidí introducir React como nueva tecnología de interfaz. Empezamos con un módulo pequeño, una prueba de concepto, conectado al backend mediante una API REST que también diseñé e implementé. La ventaja fue clara desde el principio: mayor modularidad, mejor mantenimiento del estado, una experiencia de usuario más fluida y código reutilizable.
Con el éxito del primer módulo, extendimos React a más partes del sistema. Esto no solo nos permitió separar completamente frontend y backend, sino también empezar a pensar en nuestra aplicación como una arquitectura moderna, basada en componentes.
Desafíos culturales y humanos
Uno de los mayores obstáculos no fue técnico, sino humano. Modernizar implica cambiar hábitos, y el cambio puede generar miedo o desconfianza. Me enfoqué en escuchar a mis compañeros, resolver dudas sin imponer nada, y demostrar con resultados concretos que estas herramientas nos facilitaban el trabajo.
También trabajé en convencer a la dirección, mostrando cómo estas mejoras podían traducirse en mayor productividad, menor tiempo de resolución de errores y una base sólida para seguir evolucionando el software.
Resultados y aprendizajes
Hoy en día, nuestro equipo trabaja con Git y GitHub de forma natural. El backend está migrado a PHP 8, usamos principios OOP y SOLID, y contamos con tests automatizados que aumentan nuestra confianza en cada despliegue. React nos permite desarrollar interfaces más atractivas y mantenibles, conectadas mediante APIs bien definidas.
Más allá de lo técnico, logramos algo más importante: establecer una cultura de desarrollo basada en la mejora continua, la colaboración y la confianza en el código.
Este proceso no fue inmediato, pero liderarlo me ha hecho crecer enormemente como desarrollador y como profesional. Si estás en una situación similar, te animo a que des el paso. Con paciencia, empatía y visión, cualquier equipo puede modernizarse.