Adueñate de la compilación
La compilación no es un detalle secundario, ni una tarea que deba relegarse a un "culto de la ingeniería de la liberación", sino que es una parte esencial dentro del ciclo de vida del desarrollo que debe ser propiedad y responsabilidad del equipo de desarrollo.
La compilación es fundamental y no es un detalle menor
Impacto de la negligencia
Los equipos altamente disciplinados en código a menudo descuidan los scripts de compilación, considerándolos insignificantes o demasiado complejos.
Scripts Pobres = Código Pobre
Los scripts de compilación mal mantenidos, con duplicaciones y errores, generan impacto negativo en un código fuente pobremente factorizado.
Definición de Arquitectura
La compilación debe crear artefactos ejecutables y define el componente de arquitectura de la aplicación. El código es inútil sino ha sido compilado.
Responsabilidad del Equipo de Desarrollo
Paralelo con las pruebas
Por ejemplo, si trazamos una línea paralela con la evolución de las pruebas, que pasaron de ser exclusivas del equipo de "QA" a ser una práctica de hacer pruebas mientras se codifica. De manera similar, el proceso de compilación debe ser propiedad del equipo de desarrollo.
Justificaciones refutadas
Refuta las excusas comunes (el lenguaje es diferente, "no es realmente código"...) señalando que a los desarrolladores les gusta aprender nuevos lenguajes y que la compilación es lo que hace que el código sea tangible y útil.
Beneficios de la compilación bien hecha
Simplificación y reducción de costes
Fácil incorporación (ayuda al onboarding) de nuevos desarrolladores
Consistencia. La automatización de la configuración de la compilación, elimina el clásico "a mi me funciona" en una máquina determinada.
Calidad temprana. Muchas herramientas de compilación permiten ejecutar reportes de calidad de código, detectando problemas potenciales tempranamente.
Como conclusión decir que el trabajo de programación no está completo hasta que el software funcionando haya sido liberado, y la compilación es el paso que lo hace posible. Por lo tanto, el desarrollador debe aprender lo suficiente sobre el proceso para controlarlo y mejorarlo.
Última actualización