Ir al contenido principal

¿No odias cuando algo interrumpe la compilación de tu software? Los problemas de compilación generan trabajo adicional e imprevisto. Siempre parecen ocurrir cuando estás apurado por resolver algún otro problema. A menudo, la compilación se interrumpe por algún factor que no tiene nada que ver con lo que estás haciendo en ese momento. Por eso, puede resultar bastante frustrante tener que dejar lo que estás haciendo, investigar qué ha provocado el fallo, solucionar el problema y reiniciar la compilación (con la esperanza de que solo haya un problema que resolver).

Hoy me he encontrado con este problema mientras reconstruía algunos paquetes de código abierto. Hace unos meses, actualizamos nuestra copia de OpenSSL a la versión 1.0.0, pero no reconstruimos todos los paquetes que dependen de ella. Da la casualidad de que, cuando fui a reconstruir el cliente Subversion para corregir un error, descubrí que la compilación de Subversion no funcionaba debido a que OpenSSL 1.0.0 introdujo algunos cambios incompatibles. No me llevó mucho tiempo encontrar la solución, ya que este problema se había corregido hacía meses y con una simple búsqueda en Internet encontré tanto el informe del error como la solución. Pero aún así fue bastante molesto encontrarme con este problema cuando solo estaba intentando reconstruir el producto.

No tengo ninguna sugerencia brillante que hacer al respecto. Pero sí tengo una observación, y es que ahora disponemos de mucho tiempo de máquina. Quizás deberíamos simplemente reconstruir todo nuestro software cada noche. Eso permitiría detectar los problemas de compilación cuando aún están frescos en la mente de todos.

Además, en caso de que haya algunos pasos manuales en su proceso de compilación, decidir recompilar con frecuencia será un buen incentivo para eliminarlos. Los pasos manuales son una fuente habitual de errores.

A los probadores de software no les gusta reconstruir el software una vez que lo han probado. Lo ven como una oportunidad para introducir nuevos defectos. Me gusta tener suficiente confianza en mis herramientas de compilación (compiladores, enlazadores, archivos make) como para poder reconstruir en cualquier momento. Dado que trabajamos con lenguajes de alto nivel, debemos tener confianza en nuestras herramientas de compilación. Pero hay espacio suficiente para ambos puntos de vista en un proceso de desarrollo por fases.

Si tienes sugerencias sobre cómo gestionar el desarrollo de software para minimizar las posibilidades de romper la compilación o minimizar el esfuerzo necesario para corregir los problemas de compilación, añade tus comentarios a esta publicación.