¿Cuántas veces te has encontrado con resistencia al tratar de establecer fechas con un equipo ágil para planificar estrategias y desarrollar un roadmap? Estamos en 2023 y al menos yo sigo encontrándome que en ocasiones algunas personas se aferran a respuestas como “Estamos trabajando con Agile, no podemos dar fechas”, solo por no asumir un compromiso.

Frases como estas abundan en las culturas organizacionales prácticamente desde que existe Agile. Hay gente que, a partir de su experiencia, tiende a ocultarse del monstruo de Waterfall y la necesidad de cumplir fechas. Sin embargo, la problemática surge por el mal uso que se les da a las fechas como herramienta de control, premio y castigo. En este artículo, exploraremos cómo darles un uso más sano y útil en la gestión de proyectos.

Una aventura compleja para cruzar la Antártida

Una montaña cubierta de nieve

En 1914, el explorador británico Ernest Shackleton lideró una audaz expedición conocida como la "Expedición Imperial Transantártica". Su objetivo era cruzar la Antártida de costa a costa, atravesando el Polo Sur en el camino. El equipo de Shackleton estaba compuesto por hombres valientes y experimentados, y estaban decididos a alcanzar esta hazaña épica.

Si tú fueras parte de la tripulación y te preguntaran: "¿cuánto tiempo te llevaría realizar la expedición?". ¿Cuánto tiempo dirías? Estoy seguro de que aunque creas conocer todo a lo que te enfrentarás, no serías capaz de acertar debido al alto grado de incertidumbre que conlleva un problema complejo (¡Sí! ¡Como el desarrollo de software!). Y de esto va el tema, porque además de la experiencia y el conocimiento, la incertidumbre siempre está presente, a veces más, a veces menos.

Ahora imagina que te pregunte: "¿Cuánto tiempo te llevaría realizar el tercer tramo del mar de Weddell?" Posiblemente, todavía no lo tengas tan claro, la travesía del mar de Weddell fue uno de los pequeños pasos de la expedición que llevó varios días. Sabiendo cómo han sido los tramos anteriores, qué cantidad de hielo hay, el clima de la zona, la velocidad con la que se fue avanzando hasta entonces… seguramente la incertidumbre sea mucho menor, a pesar de que haya factores que aún no controlemos, puede suceder que una ballena golpee el barco y se coma media tripulación.

En este planteamiento hemos aplicado dos principios de mucha utilidad.

Slicing

Alistair Cockburn en su famosa Kata nos hizo pensar: ¿cómo podemos hacer si quisiéramos comernos un elefante? (y además disfrutar de la mayor cantidad de las partes del elefante). Él nos proponía que si lo cortamos en finas rebanadas, podríamos comerlo como un carpaccio. Luego de quitarnos la imagen de nuestra mente y dejar al pobre elefante en paz, la propuesta es que a mayor tamaño, mayor incertidumbre, así que lo más adecuado sería abordar y analizar unidades lo más pequeñas posible y esto nos dará más precisión y seguridad.

Gestionar riesgos, bloqueos e imprevistos.

Gestionar riesgos, bloqueos e imprevistos es esencial en cualquier proyecto. La gracia de que sean imprevistos radica en que no podemos preverlos con precisión, pero si conocemos bien el entorno y somos conscientes de los factores que podrían surgir, podemos estar preparados para enfrentarlos. Si bien esta gestión es un arte en sí mismo, la clave para enfrentarlos de manera efectiva radica en la preparación.

Es necesario que en cualquier momento que identificamos que tenemos imprevistos recurrentes, podamos tener un proceso adecuado para gestionarlos y que todo el equipo lo conozca. Una breve infografía que ilustre el proceso y esté visible para todo el equipo, un simple checklist o un artículo en una wiki siempre resulta de utilidad para que todos procedamos de la misma manera. Nuestro compañero Javier Navarro lo ha sabido explicar muy claramente en su artículo la gestión de riesgos en entornos ágiles.

La importancia de contar con un plan en el tiempo

Agenda

En cualquier plan o proyecto, las fechas y plazos pueden no siempre ser precisos y, en ocasiones, no se cumplen según lo esperado. Sin embargo, la habilidad para ubicarnos en el tiempo nos brinda la oportunidad de coordinar y gestionar las dependencias, lo que incluso puede ayudarnos a evitar bloqueos en el desarrollo.

Además, nos permite planificar otras iniciativas relacionadas con el producto que no siempre son evidentes a primera vista, Por ejemplo, si anticipamos el lanzamiento de una nueva funcionalidad, el equipo de soporte puede comenzar a prepararse para asistir a los usuarios desde el día cero, asegurando una transición fluida y una experiencia positiva para los clientes. Del mismo modo, el equipo de marketing puede adelantarse y elaborar una estrategia de comunicación adecuada para el anuncio de esta nueva característica, maximizando así su impacto y alcance.

Diferentes niveles de planificación

Un lápiz y la palabra planificar

A la hora de planificar, debemos abordar diferentes niveles, los cuales también tienen implícito diferentes grados de incertidumbre y diferente finalidad.

Tipo de planificación Frecuencia habitual Grado de incertidumbre y certeza Tipo de estimación Objetivo
Roadmap Anual / Semestral Mayor incertidumbre / menor certeza Estimaciones de alto nivel / Nos basamos en experiencias pasadas Nos ayuda a trazar una estrategia y definir objetivos de producto.
Quarterly Planning Trimestral Incertidumbre y certeza media Estimaciones de nivel medio, participación de equipo ejecutor, identificación de necesidades. Ayuda para transmitir los siguientes pasos a los equipos para alinear pasos. Permite coordinar dependencias entre diferentes equipos.
Sprint Planning Duración de iteración (< 1 mes) Con buen trabajo de refinamiento de backlog, incertidumbre media-baja y mayor certeza Estimaciones de complejidad y esfuerzo en base a la capacidad del equipo. Ayuda al equipo a adquirir un compromiso del que podrán hacer en una iteración. Reflejado en un sprint goal.
Daily Scrum 1 jornada Incertidumbre baja y mayor certeza Planificación del trabajo diario para la autoorganización del equipo. Ayuda a que el equipo concrete sus compromisos y planifique paso a paso como avanzar y alcanzar el goal del sprint. Desbloqueo de impedimentos.

Estrategias para reducir la incertidumbre

La reducción de la incertidumbre es fundamental para ganar predecibilidad y lograr estimaciones más precisas en nuestros proyectos. Estas son algunas ideas para conseguir mejorar en este aspecto:

El buen y mal uso de la gestión del tiempo

En la gestión del tiempo, se pueden observar enfoques muy diferentes en empresas y proyectos. Algunas compañías aún premian a los equipos que logran entregar proyectos en la fecha comprometida, incluso si esto significa comprometer la calidad o presionar a los empleados con fechas fuera de contexto. Este enfoque puede generar tensiones y situaciones insostenibles. Es fundamental cambiar el mindset a una entrega de valor a partir de desarrollo de producto sostenible y de calidad; o más aún, premiar a un equipo cuando entrega valor de manera constante o por construir software útil y usable para el usuario final.

La gestión del tiempo es una herramienta fundamental para coordinar proyectos, pero debe utilizarse de manera responsable y considerando las tres variables que conforman el triángulo de hierro: tiempo, costo y alcance.

Triángulo de hierro: tiempo, costo y alcance.

Las tres variables están interrelacionadas. Si buscamos fijar plazos ajustados, debemos estar dispuestos a trabajar con las variables de costo y alcance sin sacrificar la calidad del producto.

Mientras que en Waterfall se fijan estas tres variables al inicio del proyecto y se busca mantenerlas fijas durante la ejecución del proyecto, en Agile se flexibilizan y se van adaptando constantemente mientras vamos aprendiendo.

En el mundo del software, hay muchas zonas desconocidas, tecnologías emergentes, código “Legacy”. Para poder dominar el tiempo es fundamental planificar y conocer esas zonas, aprender y experimentar esas tecnologías y gestionar el código legacy. De esa forma reducir la incertidumbre y aportar mayor transparencia a la hora de planificar. Siempre quedarán zonas de alta incertidumbre, pero serán “cajas variables” en nuestra planificación que habrá que monitorizar, pero también habrá mucho más espacio para ser predecible y focalizar nuestros esfuerzos para alcanzar mayor precisión.

Conclusión

La travesía de la Expedición Imperial Transantártica nos enseña una valiosa lección sobre la importancia de la planificación y la reducción de la incertidumbre en cualquier aventura, ya sea en la exploración polar o en la gestión de proyectos.

La visibilidad y el conocimiento nos proveen de transparencia, la transparencia nos permite ser más predecibles y la predecibilidad nos permite llegar a mejores planificaciones. Así que sí, como decía en el título del artículo, Agile sí implica planificar, de hecho, en Agile planificamos constantemente para encarar la incertidumbre en la medida que vamos aprendiendo.

Es importante reconocer que no todos los aspectos de una aventura o proyecto son predecibles, pero cuanto más preparados estemos y cuanto más terreno conocido tengamos, menos impacto tendrán las desviaciones en los espacios desconocidos. Te invito a reflexionar: ¿Qué estrategias utilizas para reducir la incertidumbre y mejorar tus planificaciones?

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete

Estamos comprometidos.

Tecnología, personas e impacto positivo.