sábado, 20 de diciembre de 2008

Técnicas para retrospectivas (resumen del libro Agile Retrospectives)

En las implementaciones de Scrum en las que participé, siempre usamos Keep/Change o alguna variante, para guiar nuestras retrospectivas.

Después de 4 o 5 sprints, cuando los problemas más obvios y fáciles están solucionados, las reuniones de retrospectiva empezaron a ser menos productivas. No siempre por la misma razón. A veces teníamos problemas difíciles de resolver, que siempre nos afectaban, pero a los que no le encontrábamos la forma de solucionarlos; en otros casos, surgían muchos temas para mejorar, los anotábamos pero con tantos temas, no poníamos foco, y muchos de ellos volvían a aparecer en la próxima reunión, y en otros casos, nos parecía que no había mejoras posibles.

En todos los casos, el empuje inicial disminuyó o se perdió.

Hace unos meses leí el libro “Agile Retrospectives”, de Esther Derby y Diana Larsen, que me dio muchas buenas ideas para mejorar las reuniones. Organicé actividades de retrospectiva incluyendo estas técnicas con algunos de los equipos con los que trabajo, incluso como retrospectiva de la materia con los alumnos de la facultad, donde fue la 2da mejor clase en la votación de los alumnos (la primera fue un Open Space). Creo que la mejor forma de aprender lastécnicas es probándolas, viendo que funciona en cada situación.

Pero es bueno tener una referencia rápida de todas las técnicas para, cuando uno está planeando una reunión, poder decidir cuales aplicar y cuanto tiempo llevará. Para eso hice un resumen de técnicas para retrospectivas es español, disponible libremente, gracias al permiso de las autoras.

Espero que les sirva y que me indiquen como mejorarlo (teniendo en cuenta que este resumen no reemplaza la lectura del libro).


jueves, 11 de diciembre de 2008

Herramientas para testing en PHP

Cuando organizamos el curso de Testing con Lucas Campos, una de las dudas que teníamos era si un curso corto e introductorio serviría. Con muchos temas por tratar, debíamos restringir el número de herramientas tratadas, y necesariamente muchas serían sólo nombradas.

Nos pareció que quizás esto era un valor en sí mismo. Dar una visión de muy alto nivel de lo que considerábamos podría ser un entorno de trabajo infectado por la calidad y el testing.

Con alegría vemos que a varios de los asistentes este enfoque les sirvió para
elegir qué batallas pelear, en dónde hacer hincapié como primer experimento de mejora.

¡Pero Gabriel Maffia y Norberto Bezi, de HRSmart, dieron algunos pasos más!
En paralelo con el curso, fueron investigando, probando e implementando estas herramientas, que no fueron tratadas en el curso (Gabriel hablando):

  • Continuous Integration: phpUnderControl que es básicamente un wrapper para CruiseControl que cambia el Look & Feel y te permite administrar los proyectos que tengas en el servidor de integración continua (agregar un proyecto, quitarlo, habilitar/deshabilitar tareas) con una serie de scripts.
  • Unit Testing: PHPUnit implementa el framework de xUnit en PHP (no es el único, pero es el mejor y se integra con phpUnderControl). Hace también toda la parte de Coverage y Project Mess Detection (PMD).
  • Análisis de Código: Usamos PHPCodeSniffer para revisar que se cumplan las coding guidelines.
  • Documentación: Usamos Doxygen para hacer la documentación. Existe también PHPDoc pero no es tan completo como Doxygen, que genera diagramas de clase, colaboración y llamadas.
  • Otra herramienta que todavía no probamos (y no doy fe que funcione :) ), pero que vale la pena investigar para Análisis de Dependencias: PHP_Depend
  • Hay dos herramientas que si bien nosotros no las usamos esta bueno nombrar: Xinc es un servidor de integración continua escrito integramente en PHP y Phing que es un project builder como ant, pero escrito en PHP (es el que usa Xinc para correr sus tareas).

Por no mencionar que Norberto está trabajando en FIT para PHP...

viernes, 5 de diciembre de 2008

Open Space @ FIUBA

Hicimos nuestra primera experiencia con el formato de eventos Open Space.

Gracias a todos los que vinieron y hicieron el evento.

Cómo nos preparamos
Aprender: leyendo material de Open Space Word, el sitio "oficial", y sobre todo del sitio de Lisa Heft, que es muy claro. Hay además algunos videos interesantes en YouTube, hay uno de Owen. En particular me gustaron uno de Jim Wade y otro de Stephen Silha.
Y tips desde la experiencia, que me pasó Xavier Quesada Allue.

Lugar: después de buscar en la facultad, decidimos las aulas no están pensadas para este tipo de actividad, por lo que lo mejor que podíamos hacer era crear nosotros mismos el espacio abierto. Tomamos nuestra aula de siempre, y redefinimos el espacio. Sacamos más de la mitad de los bancos, y dejamos ocho, para ser usados en las formas más parecidas a círculos que pudimos.
Usamos el pisarrón como mercado y agenda.
El espacio del mercado fue suficientemente grande, aunque uno se puede preguntar si el verlo "lleno" no detuvo la creación de ideas. El primer día eramos 6 y se produjeron casi la misma cantidad de ideas que el jueves con 12 personas.

Materiales: para las sesiones usamos papel A4, con cinta de enmascarar, lo que hacía más fácil la escritura y lectura. Descartamos los sticky note, porque son muy chicos y obligan a acercarse mucho, pero por otro lado, quedó la duda con el espacio disponible para el mercado.
Con respecto al trabajo de cada grupo, a falta de rotafolio (flip chart), y para bajar costos, usamos papel de envoltorio, pegado con cinta a la pared. Funcionó bien.

Dinámica: Por restricciones en el horario de la materia, hicimos el ejercicio en dos días consecutivos de 2 hs cada uno. En ambos casos, hubo muchos que llegaron más tarde lo que dificultó un poco la dinámica. Cada día sólo pudimos realizar una sesión, por lo que no se aprovechó al máximo la dinámica entre grupos y sesiones. Lisa Heft recomienda un mínimo de medio día.

Invitación: uno de los objetivos del evento era aprender entre todos a organizar un evento con Open Space Technology, pero buscamos un tema de interés común para realizar la invitación. La consigna fue:
¿Podemos implementamos algunos de los temas dados en la materia en nuestro día a día laboral? ¿Cómo?

Resultados
Se realizaron 5 sesiones, cada una de aproximadamente 90 min. De dos de ellas se realizó un resumen en un documento, el resto tienen resúmenes registrados en las fotos.
Al final de cada día, cada grupo comentó los resultados.
Algo llamativo, es que en 3 de las 5 sesiones, a pesar de iniciar de consignas diferentes, se habló mucho de la organización de tiempo personal.

Esta actividad tuvo los mayores puntajes en la encuesta de fin de curso, comparado con las otras 20 clases. Nota: hay que considerar que participó la mitad de los alumnos, con un proceso de autoselección, y por ser la última clase, está fresca en la memoria.


Ricardo pasó algunas fotos, y les dejo las que yo saqué abajo.

martes, 2 de diciembre de 2008

Inscripción reunión mensual (Ágiles@BsAs?)

Hola
Aún no tenemos nombre, pero no por eso nos detenemos!


El 1er encuentro mensual de la comunidad ágil en Buenos Aires se llevará a cabo el próximo 9 de Diciembre a las 19hs en Microsoft (Bouchard 710 4to piso). La idea para el primer encuentro es ver y debatir entre todos el video del panel de cierre de Ágiles 2008.

La agenda es:

19:00-20:00: Video panel de cierre Ágiles 2008
20:00-21:00: Debate
21:00-21:15: Decisión sobre tema a tratar en próximo encuentro