lunes, mayo 09, 2011

Los 6 principios de Ágil Simple

Cuando estamos durante una implementación ágil, en particular en equipos ágiles nuevos, a menudo hacemos las cosas demasiado complejas y dificiles. Tenemos la tendencia a poner parches y sobre el proceso hastas que termina siendo un monstruo grande y poco útil. ¡Necesitamos intervenir a tiempo! Así que respiren profundo, relájense y veamos juntos cómo simplificar nuestra vida en un equipo ágil.

El punto de inicio son 6 principios básicos que llamo "Ágil Simple".

Los 6 principios de Ágil Simple

  1. Colaborar
  2. Trabajar juntos
  3. Respetar las prioridades
  4. Respetar al cliente, al proceso, al producto, al equipo y a nosotros
  5. Hacer la cosa más simple que funcione - y ahí parar
  6. Mejorar en cada iteración

Repasemos rápidamente esta lista.

1. Colaborar

Muy simple, "colaborar" significa comunicarse de forma efectiva entre nosotros. No existe un equipo ágil sin comunicación. La comunicación tiene que ser lo más cerca posible al tiempo-real , y con la mejora calidad. En contadas ocasiones las personas del equipo podrían no elegir el mejor método de comunicación, pero esto debería ser la excepción a la regla.

2. Trabajar juntos

El paso siguiente a comunicarse bien es trabajar juntos. Por ejemplo, un Dueño del Producto, un tester y un desarrollador llegan a un acuerdo sobre lo que significa una historia en particular. Esto nos significa que el tester y el desarrollador siguen caminos separados. Debemos trabajar juntos y cerca para asegurarnos que este entendimiento compartido siga siendo compartido. Por otro lado, la programación de a pares es beneficiosa por muchos motivos. Está probado que trabajar de a pres incrementa de forma significativa la calidad del producto sin afectar la productividad.

3. Respetar las prioridades

Siempre, siempre, siempre debemos trabajar sobre un backlog PRIORIZADO. Debemos trabajar sobre los requerimientos en el órden en que aparecen en el backlog a menos que surja alguna circunstancia excepcional (como ser una historia demasiado grande para que entre en la iteración, y esperamos a la siguiente iteración para meter antes una historia pequeña). Todos deberían seguir la regla "lo próximo para hacer debería ser una tarea de la más alta prioridad en la que podamos trabajar". Esto significa que más de una persona va a trabajar en la misma historia. Además significa que habrá menos historias abiertas (se limita el trabajo en progreso, o WIP). También nos lleva a entregar al máximo valor en cada iteración.

4. Respetar al cliente, al proceso, al producto, al equipo y a nosotros

¿Cuándo sabe el cliente exactamente lo que quiere? ¡Cuando lo ven, por supuesto! ¿Cuándo saben lo que sienten por el producto? Cuando lo ven. Tenemos que dejar al cliente que vea más seguido a su producto, recolectar el feedback y utilizarlo. Debemos respetar al proceso y seguirlo; todos somos responsables por el éxito del proceso. Debemos respetar al producto disminuyendo su complejidad y quitando la deuda técnica. Debemos respetar al equipo y no imponer metas irreales; el equipo tiene que ser sustentable y ser capaces de resolver sus propios problemas. Debemos respetarnos entre nosotros, trabajando juntos hacia el éxito y apoyandonos todo el tiempo. Podría seguir sobre este tema mucho más. Prueben hacer el siguiente ejercicio: en un papel escriban todas las distintas maneras en la que se podría mejorar el respeto sobre estos temas, y al lado de cada una escriban una lista de los efectos que generarían ese cambio. Se van a sorprender de la diferencia que pueden lograr.

5. Hacer la cosa más simple que funcione - y ahí parar

Todos en la industria del software tenemos la tendencia a hacer demasiado en cada característica. Es como si las recubriéramos en oro. Y es muy facil caer en esta trampa. Es común escuchar cosas como "mientras estaba en eso hice XYZ", o "la historia no decía nada, pero yo sé que al usuario lo quiere así que lo hice". Ninguna de estas frases deberían escucharse en un equipo ágil. Debemos hacer la cosa más simple que funcione - y luego parar. Debemos preguntarle al cliente (recordar que lo respetamos al involucrarlo) si estamos en lo cierto.

6. Mejorar en cada iteración

Recuerden, lograr un 1% mejor por cada iteración de 2 semanas hará que el equipo sea un 25% después de un año. No se necesitan grandes mejoras, sino muchas mejoras pequeñas. Este es el concepto clave de "Ágil Simple" porque nos permite entender que nunca seremos perfectos.

Estos 6 principios están pensados para que los equipos vuelvan a pensar en lo que es importante. Los principios están muy inspirados en los principios del desarrollo Lean. Yo creo en estos principios. Y creo que los equipos logran hacer una enorme diferencia cuando ellos también los creen. ¿Cuántos de estos principios están violando hoy, y qué van a hacer para volver a hacer lo esencial?

Original: 6 principles of Simple Agile, por Bob Hartman