Seleccionar página

Cómo adaptarse a las distintas necesidades de gestión de la demanda usando metodologías Ágiles

Sergio Fernández Muiños (@artabricus)

“Mas madera… es la guerra”

¿Los hermanos Marx en el Oeste? (1940)

La gestión de la demanda es una faceta crucial en la gestión de los proyectos, pero es un concepto que muchas veces no está claramente manejado dentro de las metodologías y frameworks agile. En Scrum o en Kanban existen mecanismos sobre como debe realizarse el flujo de entrada de los requisitos, historias de usuario, incidencias o tareas. Pero ¿como atendemos y nos adaptamos a las distintas necesidades de capacidad en ambas metodologías?

En general, dentro de un contexto de desarrollo ágil, se puede asumir que los Backlogs de entrada (asociados a los distintos proyectos o áreas de negocio (Arquitectura, Servicios, Productos,…) están priorizados siempre según valor de negocio. Donde se valoran factores como los sistemas impactados, estimación técnica (puntos de historia o de épica), dependencias (técnicas y funcionales) y riesgos. El rendimiento al cual se implementa el contenido de dichos Backlogs no está, normalmente, explícitamente gestionado. Por lo que se producen retrasos recurrentes en las entregas de nuestro desarrollo o la generación temprana de producto que quizá los usuarios no requieran. En resumen, un resultado insatisfactorio del proceso de desarrollo.

Capacidad de la Demanda en Desarrollo

La capacidad de demanda de los equipos, en lo que se refiere a nuevos desarrollos o cambios evolutivos de sistemas ya desarrollados, se debe gestionar en Scrum a través del concepto de velocidad de proyecto. La velocidad de proyecto depende de múltiples factores, uno de los mas importantes es, sin duda, la configuración (tamaño y perfiles) de los equipos de desarrollo.

En Scrum los equipos valoran mediante técnicas de estimación agile (ej: poker estimation) la complejidad técnica de las Historias de Usuario guardadas en el backlog. De forma periódica (la duración de los Sprints se define normalmente en el momento del arranque del proyecto, suele tener una duración de entre 2 y 4 semanas) se realiza una ceremonia para seleccionar las Historias de Usuario a implementar. Esta selección depende tanto de la velocidad de proyecto/equipo como de las prioridades o necesidades establecidas por el Dueño de Producto. Hasta aqui el planteamiento es el standard de Scrum.

Demanda y Velocidad de Proyecto

La capacidad de la demanda se debe poder cambiar dinámicamente a través de la gestión de la velocidad del equipo. La velocidad del equipo es un parámetro que depende de varios factores, el tamaño del equipo, la experiencia o capacidad de los miembros individuales del equipo y las dependencias del equipo con factores externos. Normalmente usamos la medida de velocidad del equipo para monitorizar la evolución o la mejora continua del equipo, pero en un proyecto real podemos y debemos gestionar la velocidad a través de los otros factores que la condicionan para adaptarnos a la capacidad de la demanda.

Gestión de la demanda en Scrum
Gestión de Demanda con Scrum

Para adaptar la demanda debe implementarse un mecanismo de gestión, este puede consistir en una reunión periódica en la que se deberá enfrentar las condiciones de demanda con la de velocidad del equipo y tomar las decisiones para ajustar dicha velocidad. En Quality Objects denominamos a esta ceremonia, reunión de Gestión de la Capacidad. Los parámetros que podemos ajustar comúnmente son los siguientes:

  • Tamaño del equipo.
  • Perfiles dentro del equipo.
  • Experiencia/Formación de los componentes del equipo.
  • Creación de nuevos equipos.
  • Añadir recursos físicos al equipo.
  • Etc.

Este procedimiento no contempla exclusivamente el incrementar la capacidad sino muchas veces también se necesita decrecer la capacidad para adaptar el desarrollo a condiciones cambiantes. Y cumpliendo de esta forma el principio de adaptabilidad de las metodologías ágiles.

¿Que sucede con los proyectos en mantenimiento?

En caso de la capacidad de la demanda para proyectos de mantenimiento, donde la actividad del equipo consiste en gestionar y resolver principalmente incidencias y correctivos, la gestión del proyecto puede realizarse a través de Kanban, y en este caso, la Capacidad de la Demanda se establecerá en función del concepto del WIP (Work In Progress) para cada una de las etapas necesarias para solucionar una incidencia o un evolutivo correctivo. Las etapas/columnas del proceso Kanban podrían ser las siguientes:

  • Análisis/Evaluación de la Incidencia.
  • Implementación de la Solución.
  • Pruebas en los diferentes entornos.
  • Aceptación del Cambio

Demanda y Lead Time

El lead time de las incidencias en dicho flujo deberá ser medido de forma constante y de forma automatizada a través de la herramienta seleccionada (por ejemplo JIRA) y se generarán Histogramas según los tipos de incidencias para poder medir/mejorar el proceso y ofrecer predicciones de tiempos de solución cuando sea necesario.

Histograma de incidencias

Al igual que en el caso de Scrum en la reunión de Gestión de la Capacidad se evaluará esta información para poder definir la configuración de los equipos o personas asignadas a cada una de las fases y (adicionalmente) ajustar los WIP para poder acomodar la capacidad y los tiempos de respuesta a las necesidades del proyecto.

Referencias


[Sharma, Rupal (2016)] How to Achieve Success in Agile – with Demand Management. Blog.