miércoles, noviembre 26, 2008

La build y la botella

miércoles, noviembre 26, 2008 por Martín



En nuestro trabajo tenemos una botella como la de la foto. Bueno, en realidad es muuuuucho más grande. De un metro más o menos. Es de publicidad de Heineken, de esas de plástico. Tenemos implantado un Cruise Control bastante básico, pero que cumple su cometido. Cuando alguien rompe la build porque ha hecho commits de funcionalidad inacabada, o funcionalidad que rompe los tests existentes, o se ha olvidado de configurar dependencias, pues tiene que poner un euro en la botella.

La verdad es que esta medida tan simple tiene unos efectos muy curiosos. El más obvio y evidente es que nadie quiere romper la build, ya que aunque sólo sea un euro, nadie quiere regalarlo. Así que los desarrolladores somos mucho más cuidadosos con lo que subimos y con no romper nada de lo que hay ya hecho.

Otro efecto muy beneficioso es la cura de modestia. A nadie le gusta ser el que rompe la build. Hoy, un chico nuevo ha roto la build por primera vez, y le tocó poner el euro correspondiente. El hombre fue cabizbajo a depositar el euro ante la guasa general que se suele montar. No es que este hombre sea inmodesto, ni mucho menos, pero es que la sensación que tuve yo la primera vez que rompí esta build es de cura de modestia. Los desarrolladores tendemos a que se nos suba el ego muy rápidamente. Y siempre viene bien que alguien nos baje los humos, aunque sea el Cruise Control, y que tengamos que darnos un paseito ante la guasa general del resto del equipo mofándose (amistosamente) de que te toca apoquinar.

Además la gente es muy legal y hoy otro chico dejaba un euro por la build que había roto ayer. Y es que a uno tampoco le gusta quedar debiendo nada, aunque sea a la botella.

La verdad es que para la cantidad de gente que estamos trabajando en el equipo, y siendo diferentes equipos trabajando en diferentes componentes interconectados, yo personalmente tengo clarísimo que la salud de la build se debe en gran medida a los efectos de esa botella.

¿Estáis usando integración continua en vuestro equipo? Mi consejo, usar una botella. Hará de la build algo más estable y además añade un toque de diversión al día a día. Ah, y a final de año, pues siempre se puede hacer una cena con el dinero de la botella. ¡Faltaría más!

Foto by ^Vanessa^@Flickr

comments

2 Respuestas a "La build y la botella"
jcesarperez dijo...
9:26

Hola Martin.

Nosotros hemos implantado Hudson hace un par de meses. La experiencia es inmejorable (tengo pdte hacer un post sobre ello) si bien nosotros no consideramos que la build este rota porque falle algun test, muchas veces tenemos tests que sabemos que fallan por algun motivo que simplemente no depende de nosotros (normalmente servicios web de otro proveedor).

Las tareas que realiza el Hudson son build, test, recoleccion de tareas pendientes (los todo y fixme) y analisis de codigo Java (checkstyle y findbugs) haciendo unos reportings fabulosos de todas estas tareas.

Lo tengo planificado para que se ejecute por la noche. De modo que cuando llego por la mañana lo primero que hago es mirar los reports de cada proyecto y 'repartir collejas' (con cariño).

Las consecuencias de que los demas tengan una visibilidad tan inmediata sobre tu trabajo han sido inmediatas:

* Subidon del numero de tests con éxito, no baja del 80%.
* Bajon del numero de warnings emitidos por los analizadores de codigo Java a una cuarta parte. El principal éxito ha sido que por fin tenemos un javadoc decente.
* Los todos y fixmes por fin se cierran. Algunos programadores realizaban las tareas pendientes pero se olvidaban de eliminar el todo o fixme correspondiente del codigo.

En cuanto a lo de la botella, me parece una gran idea pero nosotros trabajamos en cliente y no da muy buen rollo tener una botella con 30, 40 euros a la vista... Asi que tendre que buscar una alternativa. ¿Tal vez una cajita fuerte? Pero como decia al principio en muchos de nuestros desarrollos es normal tener que dejar que algunos tests fallen, asi que no se...
Tambien el Hudson lleva un plugin a modo de juego con puntos y tal al que quiero echar un vistazo.


navarros dijo...
22:50

Ciertamente estas politicas funcionan. No creo que se trate de una humillación en si misma, más bien es tratar algo serío de un modo distendido.
Yo personalmente lo he 'sufrido' para la protección de ficheros en el sistema de control de versiones y funcionó a la perfección.