Agile y los sistemas complejos

La principal base “teorica” sobre la que Agile funciona está en entender al desarrollo de un producto como un sistema complejo y en cómo gestionar dicha complejidad.

Para un trabajo de un máster estuve re-leyendo un poco sobre el tema y se me ocurrió aprovecharlo para compartir un mini resumen de algunos de los principios más importantes para gestionar la complejidad y como se aplican en el desarrollo ágil de un producto.

Método empírico vs predictivo: en un sistema complejo es muy difícil (o casi imposible) poder predecir lo que sucederá, por lo que la mejor forma de controlar el sistema es aprendiendo de las acciones tomadas. El framework Cynefin es un modelo que describe cómo actuar y tomar decisiones dependiendo de la complejidad de las situaciones. Y para las situaciones complejas propone encontrar soluciones emergentes basadas en la prueba y aprendizaje empírico.

Esta forma de gestionar la complejidad nos permite aprender constantemente durante el proyecto e ir corrigiendo la dirección del mismo para asegurar el éxito.

Esto se aplica en la definición y construcción del producto, haciéndolo de una forma iterativa e incremental. Donde en cada iteración podemos obtener resultados anticipados que nos permitan saber si vamos en la dirección correcta y de no ser así podamos corregir a tiempo.

También se aplica en la organización del equipo y sus procesos, donde se inspecciona y se adapta para mejorar la forma en la que el equipo trabaja e interactúa.

Teoría de colas: Cuando hay un sistema con colas, como es el caso del desarrollo de un producto donde hay distintos tipos de trabajos a hacer para conseguir terminar una unidad de producto. El reducir el tamaño de las unidades de trabajo (batch size) y a su vez el trabajo en curso (WIP) ayuda a optimizar el flujo de trabajo.

Este principio se aplica en “Agile” al dividir el trabajo en pequeñas unidades que se van trabajando de forma iterativa. Podemos ver que se aplica el mismo principio a distintos niveles, como puede ser al tener sprints cortos enfocados a obtener un incremento del producto, o en el caso del sprint backlog al dividir un ítem del backlog en pequeñas sub-tareas. El ejemplo más claro de la limitación del trabajo en curso es en las tareas del sprint, donde se limita el WIP de cada paso del proceso.

Y para controlar estás colas, para maximizar el flujo de trabajo, se utilizan técnicas de “visual management” que nos ayudan a visualizar constantemente y de una manera sencilla el estado del trabajo en curso.

Estructura de los equipos y las organizaciones: Otro principio es el crear equipos cross-funcionales y autónomos que aporten valor de extremo a extremo. Esto ayuda a eliminar interacciones y dependencias, disminuyendo la complejidad. Si esto es aplicado a nivel organizacional, se alinean las unidades o equipos hacia la cadena de valor, quedando esta auto-contenida en los equipos. Esta estructura elimina interacciones y dependencias, disminuyendo la complejidad.

Esta forma de organizar los equipos y el poner el foco en las personas, también ayuda a que rindan mejor gracias a que…

  • La micro gestión queda contenida en el equipo
  • Alineamiento de todo el equipo hacia un objetivo de negocio común (dándole un propósito claro al equipo)
  • Fomenta la innovación y la creatividad al poder aportar soluciones
  • Responsabilidad y compromiso común
  • Mayor motivación

Todos estos temas dan para escribir muchos posts, pero hoy simplemente quería compartir algunas ideas para que siempre tengamos presente las bases (en este caso mas teóricas) del desarrollo ágil. Si olvidamos las bases y el por qué, corremos el riesgo de volvernos automatas y caer en el “Cargo Cult”

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s