27/11/2010 19:24 El Bruno

[ALM] Tiene sentido habilitar la opcion para compilar siempre, inclusive si no hubo cambios, en una build de TFS?

image

Buenas,

una de las opciones que tenemos en las builds de Team Foundation Server define si la build se ejecutará inclusive si no hubo cambios en el código que compila la misma. La siguiente imagen muestra un ejemplo de la configuración de la Build, con la opción [Build even if nothing has changed since the previous build].

image

Nota: Si quieres ver los pasos necesarios para definir una Build, MSDN es tu amiga http://msdn.microsoft.com/en-us/library/ms181716.aspx.

Supongamos que tenemos 3 definiciones de Build para 3 aplicaciones diferentes, con nombres absolutamente descriptivos:

  • Build A [para la aplicación A]
  • Build B [para la aplicación B]
  • Build C [para la aplicación C]

y las 3 definiciones compilan las aplicaciones por la noche y tienen activada esta opción. Durante una semana normal de trabajo en la que diferentes equipos de trabajo desarrollan para las diferentes aplicaciones, el resultado y evolución de las builds puede ser similar al siguiente gráfico:

image

Es normal que en los primeros días, las compilaciones tengan poca calidad y que el último día (día 5), 2 de las 3 aplicaciones ya tengan un buen nivel de calidad en las mismas y las compilaciones sean exitosas.

Durante la siguiente semana, los equipos de trabajo siguen trabajando y al final de la semana podemos ver un histórico similar al siguiente:

image

La lectura rápida de estos resultados de las builds nos indican que el desarrollo en la Aplicación A y en la Aplicación B, no ha introducido cambios que desestabilicen el código, pero sin embargo la Aplicación C, ha tenido cambios mucho más significativos ya que durante varios días la build nocturna no fué exitosa.

Esta visión que a primera vista puede ser alentadora para la Aplicación A y en la Aplicación B, es completamente diferente si analizamos los cambios en cada aplicación y pudiésemos ver que el último cambio para la  Aplicación A se introdujo el día 6; y en el caso de la Aplicación B, el último cambio se introdujo el día 7. El gráfico general sería similar al siguiente:

image

Si bien es cierto que cuando utilizamos Team Foundation Server y Team Build, los informes nos pueden ayudar a ver este tipo de escenarios, por ejemplo con el informe Build Quality Indicators, donde veremos la información cruzada del resultado de las últimas Builds, junto con las métricas de Code Churn, Cobertura de Código, resultado de ejecución de tests, etc.; personalmente prefiero dejar desactivada la opción [Build even if nothing has changed since the previous build], así en mi histórico de Builds puedo ver información como en el siguiente gráfico; y de un primer vistazo sé en que aplicación se han introducido cambios y “cuando”.

image

image

Disclaimer: ojo, que esta es una opinión personal y estoy seguro que existirá algún escenario donde dejar activa la opción de compilación sea una alternativa válida Risa, mientras tanto este check quedará desactivado.

 

Saludos @ Here

El Bruno

   

Archivado en: ,,,
Comparte este post: