jueves, 5 de abril de 2012

Adoptando Agile - The Beginning

Este sera el primer post de una serie que relataran el camino que estoy recorriendo desde la transición de métodos formales a métodos ágiles, lo bueno, lo malo y lo feo

Todo empezó a finales del 2009, habíamos cumplido ya muchos meses estabilizando el nuevo sistema, pero teníamos muchos problemas para publicar los entregables a nuestros usuarios, veamos si les resultan familiares.
  1. Retrasos en las entregas.
  2. Falta de Visibilidad de la cadena de valor.
  3. Calidad de las entregas eran aceptables, pero cada vez se hacia mas complejo asegurar la calidad del producto final.
  4. Gestión de Cambio rígida y burocrática.
  5. Falta de sinergia con el equipo de control de calidad.
  6. Command & Control.
  7. Pase a producción traumáticos. (un compañero llego a decir que era un parto)
  8. Todo era hand made.
  9. Code Ownership nulo.
  10. Equipo desmotivado. 

La situación era insostenible y tenia que hacer algo para generar el cambio de lo contrario solo nos hundiríamos mas en el caos.
Para ese entonces ya había leído sobre Desarrollo Ágil de software, leí sobre Scrum, XP, y me fascinaron desde el primer momento, y vi una luz al fondo del túnel, incluso viaje a lima para una reunión mensual de la comunidad Ágile Perú, para ver que había del otro lado.

Tome la decisión de adoptar metodologías ágiles, porque lo que hasta ese momento estábamos haciendo no nos daban los resultados esperados el ciclo: Análisis, Diseño, Codificación, Pruebas, no funcionaba.
Aproveche la oportunidad de que una Auditoria había observado la metodología que usábamos indicando  que le faltaba mas documentación de la que ya teníamos, y que debíamos adoptar CMMI y la NTP 12207, Ya estábamos trabajando así, por tanto había la necesidad de un cambio.

Como mencione asistí a una reunión de Ágile Perú creo que fue por octubre de 2009, y anote algunos tips, y decidí comenzar la adopción.

Lo primero fue compartir el marco teórico y la filosofía que hay detrás de ágil. empece a dar 2 charlas semanales para todo el equipo. Manifiesto Ágil, Principios valores, desarrollo Iterativo, evolutivo y luego Scrum, el cual adoptamos como modelo de gestión  el equipo se noto interesado pero creo que no hicieron click, creo que la desmotivación peso bastante en ello.


Primeros pasos.


Lo primero que hicimos fue armar el Product Backlog, y el taskboard (Pendiente, en Proceso, Terminado) manteniendo lo mas simple posible. se planifico el trabajo para nuestro primer sprint que definimos debería ser de 3 semanas.

Nuestro primer Dayli Meeting fue de lo peor, demoro mas de la cuenta y faltaron algunas personas, y las semanas siguientes se trato de empezar a la misma hora pero el día a día nos tenia muy envueltos.

Transcurrieron 3 semanas y nadie había terminado lo que se comprometió a realizar, las pruebas estaban retrasadas y había mucho multitasking, no se podía avanzar y nuestro Product Owner exigía las entregas a la vez que planificaba y solicitaba el desarrollo de mas requerimientos, empeorando la situación.

Finalmente se entrego lo comprometido más lo que se añadió en el camino, 3 semanas después, el desanimo se incremento aún mas debido a que en teoría habíamos trabajado de "forma diferente" y los resultados eran los mismos.

Observe que si bien teníamos el Product Backlog, el Taskboard seguíamos trabajando de la misma manera solo que ahora se reflejaba en una pizarra, y el ambiente de trabajo se sentía denso.

El siguiente sprint fue igual que el primero y recién fue ahí que hicimos la primera retrospectiva, y fue la peor de todas, prácticamente todo lo maneje yo, el equipo participo muy poco y sentí que la mayoría estaban muy disconformes con los resultados obtenidos y los cambios que deberíamos tomar, me di cuenta de dos cosas.
  1. Que estaba forzando al equipo.
  2. Me faltaba mucho background para poder llevar a cabo esta adopción de la manera adecuada.
Así que tome las siguientes acciones.
  1. Mejorar la gestión visual con algunos radiadores para ver requerimientos detenidos.
  2. No añadí mas técnicas ni procedimientos (preferí que siguiéramos así por ahora)
  3. Yo me propuse sumergirme completamente en la filosofía ágile para lo que me puse a leer libros y papers entre los cuales destaco.
  • The pragmatic series:
    • Practices of an agile developer (Andy Hunt, Venkat Subramaniam).
    • Agile Coaching (Rachel Davies, Liz Sedley)
    • Agile Retrospectives (Esther Derby, Diana Larsen)
  • Extreme Programming Explained (Kent Beck)
  • Scrum y XP desde las Trincheras. (Henrik Kniberg)
  • User Stories Applied (Mike Cohn)
  • Succeding with Agile  (Mike Cohn)
  • Los papers de ScrumManager y Proyectalis.
  • Blogs
    • Alistair Cockburn.
    • Martin Fowler.
    • Mike Cohn
    • Jeff Sutherland
    • Jeff Patton

Esta inmersión me tomo alrededor de 5 meses, incluida mi asistencia al Lima Agile Day 2010 que se llevo a cabo en Cibertec.
A mediados de Julio de 2010, me sentí mas confiado y retome el reto facilitando una retrospectiva, que detallare en la siguiente entrega.



Licencia de Creative Commons