domingo, 24 de febrero de 2013

Carta de Prácticas Ágiles: Arma tu propio menú ágil

El creciente interés por el agilismo ha propiciado una enorme cantidad de movimiento intelectual :-), en foros, blogs, cursos, certificaciones, herramientas, etc.. Sin embargo, curiosamente un tema poco tratado hasta ahora ha sido la implantación de métodos ágiles, es decir, cómo llevar a cabo una implantación de prácticas ágiles en un contexto determinado de productos/servicios encargados a un equipo de trabajo. Prefiero hablar de implantación para no entrar en las cuestiones más teóricas de la discusión acerca de adopción o transformación ágil. En este post presentaré mi lista de 42 prácticas ágiles a modo de carta de restaurante para que cada equipo configure su propio menú ágil.

En la siguiente imagen se ilustran dichas 42 prácticas y los métodos ágiles en los cuales se enmarcan (Kanban, Lean Development, Scrum y Extreme Programming). En la imagen queda en evidencia que el interés debería ser aplicar prácticas más que centrarse en un método en particular porque sino estaríamos desatendiendo prácticas que podrían sernos útiles. Son 42 prácticas, ... sí son muchas!, pero se han descompuesto al máximo pensando en su posible aplicación separada unas de otras (aunque obviamente existen relaciones entre ellas), aunque luego en una implantación concreta de prácticas en un equipo podría resultar más adecuado agruparlas en su presentación.


Haciendo click sobre la imagen se puede descargar una diapositiva en la cual se puede ver una etiqueta con el nombre de cada práctica al poner el cursor sobre ella.

Es importante destacar que intencionalmente las prácticas aquí presentadas tienen una descripción genérica, no centrada exclusivamente en el ámbito de desarrollo de software. Esto lo he hecho así para facilitar la lectura y comprensión de las prácticas para gente cuyo trabajo en equipo no está relacionado con el desarrollo y mantenimiento de software, sino con otros tipos de productos, o más aún, no en el ámbito de productos sino en el de servicios (incidencias de infreaestructura, tickets de soporte, tramitación de expedientes, etc.). Ya que el interés por métodos ágiles se ha extendido a otros ámbitos me pareció interesante hacer este planteamiento. Las prácticas ágiles son en esencia oportunidades de mejora para equipos de trabajo, independiente del ámbito de su trabajo. Así pues, la gran mayoría de prácticas tienen una sencilla extrapolación a cualquier contexto de trabajo en equipo.

Estas prácticas se incluyen en TUNE-UP Process, nuestro enfoque y herramienta para implantación de agilismo en equipos de trabajo. TUNE-UP Process apuesta por combinar prácticas cogidas desde diferentes métodos ágiles (en lugar de intentar implantar un método ágil específico), y además, promueve una evolución metodológica en lugar de una revolución (ver post ¿revolución o evolución hacia el agilismo?). Por otra parte, hemos desarrollado AGILE Roadmap, un sitio donde se puede elaborar de forma gratuita una hoja de ruta asociada a la implantación de prácticas ágiles, dicho sitio está basado en las prácticas presentadas en este post, y siguiendo el procedimiento descrito en Agile Roadmap: el primer paso para la implantación de prácticas ágiles.

Haciendo clic en la siguiente imagen podéis acceder a un mindmap donde se muestran las prácticas. Al costado derecho de cada práctica hay un enlace para acceder a una explicación.

Mindmap del Catálogo de Prácticas Ágiles
Contar con una lista de prácticas puede verse como tener la carta de un restaurante y someterse a elegir los que comeremos y en qué orden. Así pues, según los intereses del equipo habría que establecer un conjunto de prácticas (un Improvement Backlog), que se comenzarían a implantar siguiendo un orden pre-establecido. Se debería: realizar un diagnóstico del estado metodológico del equipo, establecer objetivos de mejora, evaluar prácticas respecto de dichos objetivos, y estudiar los desafíos que pueda presentar la aplicación de cada práctica candidata, todo lo cual daría como resultado dicho Improvement Backlog, una lista ordenada de prácticas interesantes para aplicar en el contexto de trabajo de un equipo. Y eso no es todo, cada práctica requerirá una preparación y posible adaptación antes de ser aplicada, muchas de las prácticas también deben considerar apoyo de herramientas.

Las prácticas NO son independientes entre sí. Existen algunas dependencias evidentes, por ejemplo, aplicar refactoring sin tener un buen soporte de pruebas (y ojalá pruebas automatizadas) puede llegar a ser catastrófico :-). Sin embargo, hay muchas otras relaciones de dependencia que conllevan mayor interpretación, me refiero a cuando una práctica favorece en cierta medida la aplicación de otra práctica. Esto ya lo reconocía Kent Beck en Extreme Programming al señalar que mientras más prácticas se apliquen y en mayor profundidad, mejor será el resultado obtenido, pues se produce sinergia entre las prácticas aplicadas.

La implantación de prácticas no es fácil ni inmediata, y es en sí misma un proyecto de mejora continua. En este sentido tiene similitudes con cualquier tipo de proyecto de mejora de procesos, aunque la diferencia remarcable debe ser sin duda que este proyecto de mejora debe y puede hacerse también de forma ágil :-).


Patricio Letelier

No hay comentarios:

Publicar un comentario