“En mi maquina funciona” no es una respuesta, es un sintoma

Cuando trabajamos en despliegue de proyectos de desarrollo, y aun no hemos pasado a procesos de Integración Continua en algún momento tenemos a escuchar la frase “en mi maquina funciona” cuando se apunta que no se puede desplegar la aplicación o que estando desplegada no funciona como se esperaba.

Como indico en el titulo el que esa expresión aflora es un síntoma de que algo no esta bien dentro del ciclo de vida de la aplicación, lo mas sencillo podría ser suponer que no hay proceso de Integración y Entrega Continua, y en ese caso la alerta nos debería empujar a organizar uno (de eso trataremos en futuras entregas), no hay vuelta que darle, el tiempo que pierdes en hacer despliegues manuales es desperdicio y sujeto a grave riesgo de errores de los que “en mi maquina funciona” puede ser el menor de ellos (imagínate hacer que la aplicación grabe en la BD de otro entorno).

El problema mas serio es cuando habiendo esos procesos aun se escuche esa justificación, en este caso debemos plantearnos las siguientes preguntas:

  • ¿Los miembros del equipo son conscientes (o han sido educados) de la necesidad de contribuir frecuentemente código sano? No es raro que algo que compile en local falle en IC porque algún fuente no se subió.
  • ¿Se tiene una estructura que efectivamente permita hacer un despliegue de todo lo ultimo con un clic?
  • ¿La cobertura de pruebas unitarias es razonable?
  • ¿Hay una cultura (a falta de mejor nombre) de revisar y entender los logs cuando ocurre un problema en el servidor de Integración Continua?

Estas preguntas y otras que vayan surgiendo tienen que caer de alguna forma en las retrospectivas del equipo para alcanzar el grado de madurez que nos permita hacer unos despliegues exitosos y sin dolor; y claro, recordar que si bien la tecnología nos ayuda a automatizar nuestros procesos el factor humano es indispensable para que el ciclo funcione adecuadamente.