Serie Fibonacci y estimación ágil

Scrum Manager Podcast 1×01 (11 minutos).

¡Estrenamos podcast! No queríamos acabar el año sin presentar este nuevo proyecto: Scrum Manager Podcast. Disponible en Spotify e iVoox. En este primer episodio explicamos qué relación existe entre la estimación ágil y la serie Fibonacci.

Las transcripciones de todos los episodios estarán disponibles en el blog, e iremos subiendo a ritmo de sprint: cada par de semanas. ¡No dudéis en sugerirnos temas sobre los que os gustaría profundizar en los comentarios! Esperamos que este nuevo espacio os resulte interesante y útil:

Transcripción

¡Hola y bienvenidos! Arrancamos este primer episodio para averiguar qué es la serie Fibonacci, qué significa estimar de forma relativa y por qué se hace así en equipos ágiles.

¿Quién fue Fibonacci?

Leonardo de Pisa, más conocido como Fibonacci, es el creador o descubridor de la serie que lleva su nombre; dependiendo de si sois de los que creéis que estos conceptos se crean o se descubren.
Era hijo de un comerciante italiano llamado Guillermo de Pisa y apodado Bonacci. De ahí «hijo de Bonacci«: Fibonacci.

Viajó desde pequeño con su padre por todo el Mediterráneo, y se familiarizó pronto con el sistema de numeración indo-arábigo, que estudió durante toda su vida.

Uno de sus libros más famosos es el Liber Abaci o Libro de Cálculo, publicado en torno a 1202. Tuvo muchísimo impacto en el ámbito matemático europeo, entre otras cosas porque aplica el sistema de numeración indo-arábigo a situaciones del mundo real y con ejemplos: a contabilidad comercial, a probabilística, geometría…

En él aparece por primera vez famosa serie Fibonacci. Se caracteriza por que cada número es la suma de los dos anteriores. Comienza con 0 y 1 y continúa con 2, 3, 5, 8, 13, 21…

La serie es famosa por muchos motivos. Se encuentra en todas partes en la naturaleza: en las ramas de los árboles y la distribución de sus hojas, en los pétalos de las flores… De hecho Fibonacci la explica en relación al crecimiento de una población de conejos. Si nos ponemos filosóficos, hay quien cree que la serie conecta con principios fundamentales de nuestro universo.
En un sentido práctico, tiene propiedades muy interesantes y versátiles que la hacen valiosa para resolver problemas reales en matemáticas y otros campos. Por ejemplo:

  • En ciencias informáticas se usa para analizar la complejidad de algoritmos.
  • En bilogía se suele ver en la distribución de hojas, semillas y pétalos.
  • En economía se usa para analizar mercados financieros y hacer predicciones en base a tendencias pasadas.

Y en agilidad se usa para estimar el esfuerzo requerido para completar una tarea. Lo importante y la razón por la que usamos esta serie y no una serie de números consecutivos normal, es que nos fijemos en las distancias que existen entre los números y no los números en sí. Quedémonos con un concepto clave: distancia relativa.

Distancia relativa

Las distancias relativas en la serie de Fibonacci se estabilizan cuando los números empiezan a aumentar. La distancia relativa entre 0 y 1 es infinita, entre 1 y 2 es del 100%, entre el 2 y el 3 es del 50%, y luego entre 13 y 21, 21 y 34 y en adelante… la distancia relativa empieza a rondar el 61-62%, y se estabiliza por ahí.
Sin agobios: si suena poco intuitivo es porque lo es, una visualización ayuda. Hay muchísimas visualizaciones de la escala Fibonacci, pero puede que os suene haberla visto en forma de espiral. Ese 62% es lo que se conoce como la «proporción áurea».

Scrum Manager Podcast, Episodio 1 (11 minutos): hablamos sobre la serie Fibonacci, unidades relativas y estimación ágil.
Foto por Z S vía Unsplash.

El caso es que estas distancias relativas hacen muy fácil comparar tamaños y elegir entre uno y otro. A las personas se nos suele dar bastante mal hacer estimaciones absolutas, pero las relativas se nos dan muy bien.

Ejemplo de distancia relativa

Supongamos un elefante, y yo os pregunto: ¿cuánto pesa el elefante, más o menos, en toneladas? Eso sería pedir una estimación absoluta. No es sencillo. Depende de lo claro que sea nuestro concepto de «tonelada» y «elefante».
Pero si yo pregunto ¿qué pesa más? ¿Un elefante o una cebra? La pregunta se vuelve muchísimo más fácil. Porque tampoco estoy pidiendo la diferencia absoluta de peso entre ambos: sólo necesito saber la diferencia relativa que existe entre el elefante y la cebra.

Esta facilidad que da el tener un ejemplo concreto con el que comparar es una de las razones por las que en agilidad se usan las unidades relativas para estimar. Se toma como referencia una tarea sencilla con la que el equipo está familiarizado, que marca la unidad, y se compara en relación a ésta.
Es más rápido, es más fácil.

¿La serie Fibonacci ayuda a estimar con más precisión?

Lo cierto es que no. No ayuda a precisar, sino que nos protege de intentar hacerlo. Nos mantiene en el reino de las estimaciones aproximadas y relativas.

Esto nos interesa porque en proyectos ágiles o en empresas del conocimiento, las tareas suelen tener un alto componente creativo. No son tareas con soluciones únicas, absolutas y objetivamente medibles. Y trabajamos con personas que tienen diferentes especialidades y grados de experiencia. El esfuerzo y tiempo necesario para una tarea depende de muchas variables.

La incertidumbre y la variabilidad van de la mano de los proyectos ágiles. Pero a menudo se nos olvida que la complejidad no es lineal, es exponencial. Y para esto la serie Fibonacci ayuda también, porque de forma intuitiva nos lo está dando a entender. Cuanto mayor es una tarea, más incógnitas y variables entran en juego, y con cada variable la complejidad se multiplica y es más difícil estimar con precisión. A veces la estimación inicial se puede ir ajustando conforme se obtienen más datos.

Está claro que a todos nos encantaría saber exactamente cuándo estará terminada una tarea, pero no siempre es posible. En entornos complejos y dinámicos, las estimaciones relativas son, por extraño que suene, más precisas y realistas, y por lo tanto más útiles.

De la teoría a la práctica: el planning poker

Vamos a explicar cómo se suele usar la serie Fibonacci en el día a día. El uso más extendido es el planning poker o poker de estimación, ideado por James Grenning. Es un juego de planificación en el que los miembros del equipo utilizan una baraja de cartas con los valores de la escala FibonaCHi. Se usan para representar el tiempo que cada persona cree que se necesitará para completar la tarea.
Aparecen los valores de la escala del 0 al 21, ya que si una tarea es mayor de 21 eso suele indicar que es demasiado grande y hay que descomponerla en otras menores. Hablaremos más de esto en un futuro episodio.

Además de estos números, la baraja suele contener un par de cartas más:

  • Una que vale «medio punto», para tareas más pequeñas que 1 pero mayores que 0.
  • Una con el símbolo de infinito, que representa tareas mayores de 21: demasiado grandes para ser estimadas.
  • Una con un interrogante para indicar que, por las razones que sea, no se puede estimar. Puede ser porque falte información, por ejemplo.
  • Por último, a veces se incluye una carta con alguna imagen alusiva que sirve para pedir hacer un descanso.

El formato baraja se usa para permitir que todos opinen a la vez, y sin que las estmiaciones de unos afecten a las de otros.
Que haya discrepancias puede ser beneficioso e interesante: a veces unos miembros consideran que cierta tarea es muy sencilla y otros que es enorme o «infinita». Cuando esto sucede, interesa que los miembros con las estimaciones extremas comenten por qué han elegido cada carta. Después, se vuelve a votar.

En ocasiones es difícil saber qué carta elegir. Un consejo es que, ante la duda, es mejor elegir el valor superior. Podemos imaginar los valores como contenedores de diferentes tamaños, y preguntarnos en cuál de ellos «cabe» la tarea. Si tenemos una tarea que creemos que vale 6 o 7… no cabe en el 5. Así que elegiríamos la carta 8.
Recordamos que el objetivo de esta técnica es la rapidez y obtener valores orientativos, no ser precisos. Es una forma de alcanzar consenso en escasos minutos y sin discutir.

Por último, habrá que tomar una decisión: se puede elegir la estimación menor, la mayor, o la media. ¿Quién decide?
Hay que tener en cuenta que estamos trabajando con unidades relativas, y que el valor «1» equivale a una tarea sencilla con la que todo el equipo está familiarizado. Un ejemplo fuera de la oficina podría ser el tiempo que se tarda en freír un huevo frito. Todos nos podemos imaginar haciendo esto, y sabemos más o menos lo que nos cuesta. Si nos preguntan: «¿cuántos huevos fritos cuesta planchar una camisa?» la respuesta será distinta según lo bien o mal que se nos dé planchar.
Por eso quienes tienen que decidir la estimación definitiva son la persona o las personas encargadas de la tarea. Un programador senior puede levantar un servidor antes de la pausa para el café; un programador junior puede tardar mucho más. Y queremos saber el tiempo que tardará quien lo haga.

Pero el planning poker no es ni mucho menos la única manera de estimar de forma ágil. Hay equipos que directamente reniegan de las estimaciones, y no hacen. Pero eso es un tema para otro episodio.

Por ahora, esperamos que haya quedado claro por qué en proyectos ágiles se estima de forma relativa, y cómo la escala Fibonacci ayuda a este propósito:

  1. Porque ofrece cifras fáciles de comparar entre ellas.
  2. Porque comunica de manera intuitiva que la complejidad aumenta de forma no lineal.

Subiremos otro episodio en lo que se tarda en hacer un sprint: dentro de un par de semanas.
Hasta entonces podéis seguirnos en Twitter, LinkedIn, y scrummanager.com.
¡Mucha suerte con vuestros proyectos y hasta la próxima!

Un comentario en “Serie Fibonacci y estimación ágil”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *