Prediciendo el futuro. El Forecasting.

1
1017
Empresario con bola de cristal

Desde hace tiempo vengo queriendo escribir este artículo. Principalmente, porque en el día a día veo cómo los equipos sufren por darle significado a las estimaciones (ver el artículo “Te duele estimar y lo sabes”) o bien porque llaman estimación a algo que realmente es un forecasting (pronóstico).

¿Y qué es el Forecasting? Pues mejor te enseño una imagen y seguro que entiendes el concepto muy rápido.

La imagen siguiente es el pronóstico del tiempo para la primera semana de septiembre de 2020. En ella se muestra el pronóstico del tiempo indicada con una probabilidad. 

Basándonos en este pronóstico, sin problemas vamos a poder tender la ropa en el balcón sin temor a que se moje ya que es 0% la probabilidad de lluvias durante casi toda la semana.

Pronóstico del tiempo
Fuente: http://www.aemet.es/es/eltiempo/prediccion/municipios/madrid-id28079

El forecasting (pronóstico), por consiguiente, consiste en anunciar un hecho futuro o la evolución de un proceso basándonos en criterios lógicos o científicos o a partir del análisis de los datos de que se dispone. 

En definitiva, el forecasting en ningún caso es una suposición.

¿Cómo aplica el Forecasting a los equipos de desarrollo? 

El forecasting va a permitir al equipo de desarrollo responder a preguntas del tipo: ¿Cuándo estará hecha la funcionalidad X? ¿Qué podremos subir a producción en la fecha tal? 

Analizando un poco la definición proporcionada podemos determinar que a la hora de dar un pronóstico, los equipos de desarrollo, van a tener que:

  • Hacer uso de un histórico de datos.
  • Utilizar métricas o funciones estadísticas para indicar la probabilidad del suceso.

 

Para hacer pronósticos hay que entender la probabilidad pero tranquilos, ya que no hay que ser un experto estadístico para ello. Sólo se necesitan tener unos pocos conceptos claros y diferenciar la estimación del pronóstico.

Y aquí normalmente nos topamos con un hecho comprobado y es que no entendemos la probabilidad.

Antes de continuar, vamos a probar tus conocimientos sobre probabilidad con un juego simple pero que el 97% de la gente falla.

Resulta que en Estados Unidos se hizo muy popular un concurso llamado Monty Hall Show, que convierte un problema bastante sencillo, en un auténtico dolor de cabeza para aquellos que tienen un nivel de matemáticas aceptable.

El problema es el siguiente: 

Estás en un concurso de televisión donde Monty te muestra 3 puertas. Detrás de una de ellas hay un coche y detrás del resto hay una cabra. Monty te pide que elijas una puerta y te llevarás el premio que se encuentre tras ella.

Monty Hall Show

¿Qué probabilidades hay de que elijas la puerta correcta?

Parece sencillo 1 entre 3 da lugar a un 33% de éxito. Hasta aquí bien.

Una vez que has elegido tu puerta, ahora Monty que es el Arturo Valls de los concursos en Estados Unidos elimina una que contiene una cabra y te ofrece la posibilidad de cambiar de puerta si quieres, ¿cuál es tu probabilidad de ganar ahora? ¿Deberías cambiar de puerta?

Párate a pensarlo un par de minutos. Ahora, si después de pensarlo un momento, has llegado a la conclusión de que tus probabilidades de ganar han pasado al 50%, lamento decirte que has caído en el error básico que comete el 97% de las personas. Y por tanto, anótate esta como factor que afecta a tus estimaciones.

Si quieres conocer en detalle la solución (explicación muy visual, detallada y en español), la puedes leer aquí:

https://www.wikiwand.com/es/Problema_de_Monty_Hall

Visto, el problema anterior vamos a ver cómo el Forecasting viene a solucionar dos de las preguntas más comúnmente hechas a los equipos de de desarrollo.

Para ello os dejo un excel a modo de plantilla para que podáis aplicarlo en vuestro día a día, siendo totalmente modificable a vuestras necesidades.

Descargar plantilla Forecasting

¿Cuándo voy a tener lista mi historia de usuario?.

Abre el excel que te he proporcionado y ve a la primera pestaña del Excel “Distribución Lead Time”,  en ella vamos a poder hacer un pronóstico de la pregunta del título.

Veamos con el ejemplo proporcionado cómo utilizar la pestaña “Distribución Lead Time”.

Al acceder a ella verás una tabla donde colocaremos nuestro histórico de datos. La información que conformará este histórico de datos está formada simplemente por la medición del tiempo que ha tardado cada una de las historias de usuario en terminarse. O lo que es lo mismo por el Lead Time de cada historia de usuario.

En el ejemplo, hemos ido colocando en Frecuencia el número de historias de usuario que se han ido terminando según su Lead Time.

Distribución del Lead Time

De esta forma, en la tabla anterior podemos observar que tras un periodo de tiempo determinado tenemos: 5 historias que se han terminado en 1 día, 9 historias que se han terminado en 2 días, 7 historias en 3 días, etc.

Además, comprobamos que el primer valor con el percentil 85 (donde se concentra el 85% o más del trabajo) se da en el día 9 (Lead Time 9).

Por tanto, a la pregunta: ¿cuándo estará lista mi historia de usuario? La respuesta es: con un 86% de probabilidad en 9 días.

¿Cómo sé si mi estimación de las Historias de usuario es buena?

Para que puedas responder a esta pregunta te he dedicado la segunda pestaña del excel nombrada como “Story Points vs Lead Time”.

En esta ocasión vas a tener una tabla muy similar a la anterior. Sin embargo, ahora deberás indicar la estimación dada a la historia de usuario (yo he usado para el ejemplo puntos de historia, aunque puedes usar tallas de camiseta o cualquier otro tipo de elemento) e indicar el tiempo que ha tardado en completarse (Lead Time):

Puntos de historia y Lead Time

Una vez hecho esto se generará un gráfico de dispersión como este:

Gráfico de dispersión

Cómo interpretar este gráfico

Cada punto azul representa una historia. El gráfico muestra las Historias de usuario según la estimación dada en puntos de historia (Eje X) y el tiempo que han tardado en terminarse (Eje Y).

La línea azul muestra la tendencia y representa la correlación.

Para dar respuesta a la pregunta: ¿cómo sé si mi estimación de las Historias de usuario es buena? deberemos observar cómo se concentran las historias de usuario en función de la tendencia.

  • Si la mayoría de los puntos azules están cayendo sobre o muy cerca de la línea de tendenciaSÍ, significa que las estimaciones son acertadas la mayor parte del tiempo. Hay una alta correlación entre los puntos de la historia y el tiempo de espera.
  • Si existen escasos puntos azules sobre la línea de tendencia y la mayoría caen lejos de ella (como en los datos de ejemplo)NO, significa que muy a menudo las estimaciones no se correlacionan con su plazo de entrega (por ejemplo, en la gráfica de muestra las historias de usuario estimadas con 2 toman de 2 a 20 días).

 

Por último, en el excel te he añadido el Coeficiente de Correlación de Pearson. Este muestra la correlación estadística real entre las dos variables «puntos de historia» y «lead time». 

  • Si el valor está por debajo de 0,5: sin correlación o correlación débil
  • Si el valor está entre 0,5 y 0,75: correlación moderada
  • Si el valor está entre 0,75 y 1: correlación significativa
  • Si el valor es de 1: correlación perfecta

 

En el caso del ejemplo es de 0.59 siendo una correlación moderada más cercana a una débil e indicándonos que nuestras historias de usuario no están bien estimadas.

Conclusión

Como hemos visto las estimaciones suelen ser muy dolorosas para los equipos de desarrollo. Principalmente las causas de estos malestares vienen dados por problemas inherentes en el equipo y muchas veces en toda la organización y que son los que impiden hacer una estimación correcta.

También suele ocurrir que se confunden los términos de estimación con el de pronóstico. Siendo el pronóstico el más solicitado y ensombrecido por la estimación.

Existen varios métodos estadísticos que nos permiten dar de forma sencilla un pronóstico del trabajo con el mero hecho de mantener un histórico de datos de los mismos. Cuanto más amplio sea este histórico más certero será nuestro pronóstico.

Esperamos que las herramientas facilitadas sean de vuestra ayuda y contar con vuestras experiencias de uso de las mismas. Para cualquier duda podéis hacer uso del formulario correspondiente al final del artículo.

1 COMENTARIO

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad