¿Qué diferencia la planificación ágil de la tradicional?

En todo proyecto planificar es importante porque permite reducir riesgos así como también responder preguntas básicas como cuándo va a estar terminado el proyecto y qué va a estar listo para determinada fecha. De esta manera se puede decidir si vale la pena hacer el proyecto o no. Da información útil para tomar ciertas decisiones, como por ejemplo en qué momento realizar la campaña de marketing. Se provee confianza e información que puede ser necesaria para la aprobación del proyecto, etc.

Pero ¿Qué tienen de particular la planificación en las metodologías ágiles?





La planificación tradicional considera la elaboración de un plan completo en la etapa inicial del proyecto. El plan generalmente se representa con un gráfico de GANTT que muestra completitud de tareas, asignación de recursos o personas y dependencias.

La Planificación Ágil


En las metodologías ágiles los planes no son tan importantes como en las metodologías tradicionales, en cambio la planificación como actividad es fundamental.

El plan es un documento que representa una foto de un momento dado, el cual va perdiendo valor a medida que se va aprendiendo y se van produciendo cambios en el contexto.

La planificación es una actividad que se debe realizar frecuentemente. Es una búsqueda constante de valor ya que se piensa cual es el producto más adecuado a construir.

El mayor riesgo en desarrollo de software no está en el desarrollo en sí, sino en la decisión de qué  desarrollar. Si se desarrolla el producto equivocado que nadie va a usar no interesa que tan bien fue desarrollado.

La planificación ágil está distribuida a lo largo de todo el proyecto más que constituir una etapa inicial del proyecto. Produce planes que son fácilmente modificables.

Se reconoce que en la etapa inicial no se cuenta con suficiente información para realizar un plan detallado y se planifica entrega de software funcionando y útil en lugar de completitud de tareas. Por ejemplo, una tarea podría ser diseñar la estructura de bases de datos mientras que una funcionalidad podría ser desarrollar un componente para cargar imágenes.

Se trata de evitar dependencias para poder priorizar por valor y no asignar de ante mano trabajo a personas sino al equipo entero.

La planificación ágil se hace en función de las estimaciones realizadas por todo el equipo en lugar de estimaciones realizadas por un solo experto o project manager

Priorización


Las funcionalidades del sistema a desarrollar siempre deben estar priorizadas. Siempre que sea posible se debe desarrollar primero aquellas funcionalidades que entregan mayor valor a los usuarios y generan mayor retorno de inversión (ROI).

Para determinar qué funcionalidades son las mejores, se puede emplear el modelo de Noriaki Kano el cual implica hacer una encuesta a usuarios o el modelo de Ponderación Relativa de Karl Wiegers.

Planificación a tres niveles


La planificación ágil funciona a tres niveles: La planificación diaria es la conducida a través de la Daily Standup Meeting. La planificación de la iteración se hace al inicio de cada interación para determinar qué se va a desarrollar en dicha iteración (Sprint Planning) y por último la planificación de release puede abarcar varias iteraciones e indica a alto nivel qué funcionalidades se estima entregar a los usuarios y en determinados momentos (Release Planning).



¿Por qué los planes ágiles funcionan?


- Se replanifica con frecuencia, cada vez que se aprende más del producto, del proceso y del negocio.

- Separa la estimación de tamaño con la estimación de duración. La separa claramente con unidades de medida distintas para cada uno.

- Se planifica a diferentes niveles. Cada nivel con diferente precisión.

- Se planifica a nivel de funcionalidades, no de tareas.

- El trabajo en progreso se elimina en cada iteración. Tener mucho trabajo en progreso demora la entrega de cada funcionalidad y aumenta el costo por pasar de una tarea a otra. En Scrum, cada iteración se comienza de nuevo sin trabajo en progreso. El trabajo no terminado podría volver a entrar en la siguiente iteración pero no es seguro.

- Seguimiento a nivel de equipo, no a nivel de individuos. Todo el equipo es responsable de llevar todo el trabajo adelante, no se hacen mediciones individuales porque perjudica el sentido de colaboración por el de competencia.

- Se reconoce la incertidumbre y se planifica en función de ella.

Para seguir aprendiendo sobre planificación y estimación ágil, recomiendo el libro Agile Estimating and Planning de Mike Cohn

Entradas populares de este blog

Visual User Story Mapping Aplicado

Historia de las Metodologías Ágiles en Contexto

Los Bugs en Scrum