Alternativas a la estimación en horas/puntos de la historia

Estamos buscando cambiar nuestro enfoque sobre las estimaciones. Ahora estimamos en horas/días, pero nos gustaría cambiar esto y hacer que nuestro proceso sea más flexible. Estamos trabajando en base a Scrum, donde las historias se planifican en base a una estimación inicial y luego del análisis técnico se puede utilizar una nueva estimación (que es más refinada).

Debido a que notamos que nuestro proceso de estimación se puede mejorar, estamos buscando alternativas. Ya encontré documentación en línea sobre el uso de puntos de historia y velocidad para indicar el esfuerzo requerido para implementar algo.

¿Hay alguna alternativa además de los puntos de historia/velocidad? He estado buscando en línea, pero no puedo encontrar buenas fuentes con alternativas.

¿Puede dar algunos detalles de por qué leer los resultados de buscar en Google "métodos de estimación de scrum" no es una buena fuente?
A decir verdad, esta pregunta no es adecuada para StackExchange, ya que no hay una sola respuesta buena, pero tiene una gran variedad de buenas respuestas a continuación que deberían ayudarlo.
@Daniel Si bien la pregunta podría mejorarse, creo que el núcleo está en el tema porque la mayoría de las personas asumen que sus únicas opciones son horas o (en menor medida) puntos de la historia. Por qué son tan frecuentes y qué clases de alternativas pueden existir, parecen relevantes para nuestra misión a pesar de que la pregunta genera una lista en su forma actual.

Respuestas (6)

Para mí, parece que desea mejorar la precisión de su estimación, no hacerlo más flexible. Así que aquí hay algunos consejos.

Cono de incertidumbre

Cuanto antes esté en el proyecto, menos precisa será su estimación. El cono de incertidumbre ilustra esto comenzando con una dispersión de 0,25x a 4x y convergiendo lentamente al factor de 1. Esta es la precisión máxima que puede esperar de sus estimaciones. Es decir. cuando comienza, no puede ser más preciso con su estimación, solo puede tener más suerte.

Menciono esto porque sus preguntas me suenan como si estuviera priorizando las historias en función de la estimación inicial, sin tener en cuenta ningún refinamiento. Sin embargo, podría estar equivocado acerca de esto.

Los rangos triunfan sobre las conjeturas simples

En lugar de proporcionar estimaciones de un solo punto, ofrezca rangos. Comience por estimar el peor de los casos absolutos para su límite superior. Luego calcule el escenario "probable" para su límite inferior. Trate de establecer ambas estimaciones para que tenga un 90% de confianza de estar en lo correcto. Esto hace dos cosas: considerar primero el peor de los casos pone su mente en el camino de lo que puede salir mal y evita que asuma demasiados riesgos. En segundo lugar, si te obligas a expandir tus estimaciones a un rango extremo de confianza del 90 %, tendrás al menos un 30 % de posibilidades de acertar.

Estimaciones relativas

Siempre que sea posible, trate de evitar hacer estimaciones absolutas y trate de estimar elementos en relación unos con otros. Luego usa la velocidad para poner la cantidad de cosas completadas por sprint en relación con las estimaciones que le das. PUEDES hacer esto con horas si quieres. Es más natural si lo haces con puntos. Además, para conservar cualquier grado de confiabilidad, debe abstenerse de cambiar sus pesos relativos. Si estima su primer sprint sobre la base de que la Tarea X es Y horas/puntos y luego, después del sprint, mire su velocidad y diga "¡Ajá! Estábamos equivocados por un factor de 2.375, tengamos esto en cuenta para futuras estimaciones" te estás disparando en el pie.

¡Solo responde la pregunta ya!

Esencialmente, hay tres enfoques que puede tomar cuando necesita mover una pila de rocas:

  • Calcula el peso real de cada piedra y acepta que eres un asco en esas conjeturas. También acepte que las personas tienen tendencias tontas, como esperar que puedan cargar una piedra de cierto tamaño, o no querer parecer débiles al estimar que una piedra tiene un peso demasiado alto para argumentar que no pueden cargarla.
  • Estime sus piedras en relación entre sí. Acepte que sus estimaciones no son un gran indicador de cuánto trabajo es limpiar toda la pila hasta que haya comenzado a trabajar en ella.
  • No estimes el peso de las piedras. Dado que todo lo anterior significa que es muy poco probable que se acerque al número real, en lugar de eso, concéntrese en dividir cada roca en tamaños prácticos (como debe hacerlo de todos modos) y se dará cuenta de que a medida que sus piedras se vuelven más homogéneas en tamaño, menor es la diferencia. hay entre estimar cada uno de ellos y simplemente contarlos.
Me encanta esta respuesta

Simulaciones de Montecarlo .

La idea es bastante simple. Tus historias de las semanas anteriores tendrán algún tipo de distribución en cuanto a cuánto tiempo tomó cada una. Digamos que las historias tomaron esta cantidad de días cada una hasta que se terminó la siguiente historia:

3, 2, 5, 4, 1, 2, 3, 10, ...

Estos a menudo siguen algo llamado distribución de Weibull , que está sesgada hacia una cola grande y gorda, ya que la mayoría de los descubrimientos lo ralentizan más de lo que lo aceleran. (La intuición humana tiende a asumir una distribución normal, que es una de las razones por las que generalmente somos optimistas).

A veces, aunque estas distribuciones son bimodales (hay algún sistema heredado que ralentiza cada historia que toca, por ejemplo) o simplemente desordenadas (nadie se registra un viernes porque no quiere romper la compilación). Lo bueno de las simulaciones de Montecarlo es... ¡no importa! Funciona independientemente de cuál sea su distribución.

La forma en que lo hace es calcular un viaje aleatorio a través de las historias que le quedan y encontrar cuándo termina ese viaje. Así que digamos que calculo que me quedan 60 historias. Para cada historia, elegiré el tiempo que transcurrió entre historias al azar de su distribución.

1, 5, 4, 10, 3, 2, 10, 2, 5...

Y sigues haciendo esto hasta que termines las 60 historias. Ahora agregue la cantidad de días que tomó hasta la fecha de inicio...

...Y luego hacerlo de nuevo.

Hágalo 1000 veces o más (sí, necesitará un software para esto o una hoja de cálculo especializada). No importa si ese extraño "10" se elige dos veces porque eso no sucederá en todos los viajes; algunos serán extrañamente lentos, pero la mayoría serán más rápidos. Registre las fechas de finalización de cada viaje.

Ahora tienes algo más que una estimación. Tienes un pronóstico probabilístico . Entonces, si empiezo el 1 de enero de 2018, podría obtener algo como:

100%    10-04-2018
95%     03-04-2018
90%     29-03-2018
85%     25-03-2018

etc.

Cada una de esas fechas muestra qué porcentaje de los viajes que realizó terminó para esa fecha. Esto le da una idea de la probabilidad de llegar a una fecha determinada con todas las historias. Alternativamente, puede ver cuántas historias ha terminado en una fecha determinada, solo contando hasta que se alcance la fecha.

La mayoría de las personas son realmente optimistas cuando hacen estimaciones, ¡y tienes suerte si alcanzas el 50% de los viajes que terminan en esa fecha!

Troy Magennis de Focused Objective tiene hojas de cálculo gratuitas para cosas como esta, y la herramienta de Dan Vacanti en Actionable Agile es lo suficientemente barata y, en mi opinión, excelente. Ambos también tienen numerosos videos que hablan sobre la técnica. También tengo un proyecto de código abierto que aún no tiene validación pero funciona lo suficientemente bien como para importar hojas de cálculo de Excel, incluidas las exportaciones de Jira.

Troy recomienda entre 7 y 25 semanas de datos para que esto funcione; más que eso suele estar desactualizado. Sin embargo, tenga en cuenta los patrones estacionales.

Estimaciones probabilísticas

Si no quiere pasar por la molestia de Montecarlo, pero sí quiere la distribución de probabilidad, una técnica que aprendí de Douglas Hubbard, autor de "Cómo medir cualquier cosa", podría ayudarlo.

Le pido al equipo que me dé una idea de cuándo creen que se enviarán. Por lo general, serán muy optimistas, por lo que si es a principios de enero dirán "Finales de abril", o algo así.

Luego les pregunto qué tan probable es que envíen en ese momento. “Ay, el 70%”, me dicen.

Así que les ofrezco un premio hipotético de £10,000 y dos formas diferentes de ganarlo. Pueden elegir una canica roja de una bolsa que contiene 7 canicas rojas y 3 blancas, o pueden enviarla a fines de abril.

Suelen ir a por las canicas; a pesar de decir que tienen un 70% de certeza de enviar, ¡prefieren las posibilidades de sacar 7 de 10 canicas!

Así que reducimos el número de canicas en nuestra bolsa hipotética hasta que prefieran enviarlas. Eso nos dice cuáles son sus niveles reales de confianza. Al hacer esto con diferentes números de canicas, podemos obtener un rango de diferentes niveles de confianza.

Cómo usar estos

Si depende de la fecha de envío de alguna manera, no use nada menos del 85% de confianza. Eso suele estar muy lejos en comparación con las estimaciones de la mayoría de las personas. A medida que se acerque la fecha, podrá ver si lo logrará o no, y aún tendrá la oportunidad de acelerar las cosas o cambiar otras dependencias si es necesario.

Tenga en cuenta que la empresa no estará contenta... hasta que comiencen a ver el tiempo ahorrado al no estimar en puntos de la historia fáciles de jugar y al no tener que rehacer un montón de planes basados ​​en algo que de todos modos nunca iba a suceder. Es posible que deba educarse un poco o navegar por la política complicada hasta que acepten la realidad.

Sin estimaciones

Hay un movimiento bastante fuerte en contra de la creación de estimaciones. Al contrario del nombre, esto no significa que no se realicen estimaciones, sino que no se crean ni publican estimaciones.

Cómo funciona

Primero, el equipo debe conformarse con una historia de tamaño "promedio". Usaría una pauta como "Deberíamos poder hacer de 5 a 8 de estas historias en un sprint". Es útil tener 2 o 3 ejemplos de artículos anteriores que sean de este tamaño.

Ahora que tiene un tamaño de destino aproximado, desglose los elementos que son más grandes que eso hasta que coincidan cerca del tamaño. La idea aquí es que este proceso de estimación a medida eliminará las conversaciones beneficiosas en el equipo que genera la creación de estimaciones, pero dado que no hay números de estimación resultantes, evita muchas de las disfunciones y problemas que pueden surgir de la publicación de estimaciones.

La buena noticia para los propietarios de productos y las partes interesadas es que la previsión sigue siendo fácil. Si el equipo está completando de 5 a 8 elementos del backlog por sprint en promedio, puede adivinar cuántos sprints se necesitarán para llegar a un punto determinado en el backlog.

Los puntos de función (FP) son una buena unidad de medida para la salida del software

Si está practicando Scrum, debe ir con puntos de historia. Las razones son:

  1. Las estimaciones basadas en el tiempo (como las horas) dan una falsa impresión de precisión y previsibilidad a las personas ajenas al equipo, especialmente a la alta dirección.
  2. Las personas son mejores en la estimación relativa (puntos de la historia) que en la estimación absoluta (como las horas).

Dicho esto, déjame intentar responder a tu pregunta:

Ahora estimamos en horas/días, pero nos gustaría cambiar esto... ¿Existen otras alternativas además de los puntos/velocidad de la historia?

En industrias maduras, las estimaciones de alto nivel se realizan en función de la producción:

  • Puede obtener una estimación de cuánto costará un edificio de oficinas por pie cuadrado.
  • Puede obtener una estimación de cuánto costará una unidad de energía para una empresa de energía.

Aunque Scrum Guide no menciona los puntos de la historia, Jeff Sutherland, el cofundador de Scrum, es un gran defensor de los puntos de la historia . Una de las mayores debilidades de Scrum es que hay alguna unidad de medida para la entrada de esfuerzo, pero no hay una unidad de medida para la salida de resultados.

Existen organizaciones, estándares, herramientas y certificaciones bien establecidas para Function Point, que es una medida del resultado:

Si bien no estoy de acuerdo en parte con que Scrum no esté orientado a los resultados (por ejemplo, hecho/no hecho), estoy de acuerdo en que a menudo se implementa de manera deficiente. ¡Sin embargo, +1 por mencionar puntos de función como alternativa!
@ToddA.Jacobs No quise dar a entender que Scrum no está orientado a resultados. Solo que la unidad de medida utilizada, es decir, los puntos de la historia, es una medida de esfuerzo (entrada) desde el punto de vista del desarrollador. Mientras que el Punto de función (FP) es una unidad de medida del resultado (salida) desde el punto de vista del usuario.
De acuerdo, en lo que respecta a la estimación de la cartera de pedidos. Me concentré en la línea que decía with no attempt to measure the result output.Creo que "comprobable" a partir de los criterios INVEST (no Scrum, pero a menudo es una práctica sólida) y la función Sprint Review para proporcionar la evaluación de salida dentro del marco, pero ciertamente estoy de acuerdo en que el proceso de estimación en sí es principalmente impulsado por la entrada por diseño. ¡Muy buenos puntos, Ashok!
"Si está practicando Scrum, debe ir con puntos de historia". Porque . . . suspiro "Una de las mayores debilidades de Scrum es que solo estimamos la entrada de esfuerzo, sin intentar medir el resultado". Luego, comprender que los resultados valiosos son una gran parte de la filosofía ágil y aparentemente falta el marco Scrum.
@AlanLarimer Los puntos de la historia no son obligatorios para Scrum. Sin embargo, se usan comúnmente porque Scrum requiere que "en cualquier momento, se pueda sumar el trabajo total restante para alcanzar una meta". Scrum prioriza la medición del trabajo restante como su principal métrica de informes, mientras que los resultados se validan en Sprint Reviews. Sin embargo, no es justo decir que Scrum no mide los resultados.
No se dio ninguna razón por la que se deban usar los puntos de la historia; fue una declaración de "solo porque sí". Mis disculpas que no estaba claro. No estaba diciendo que Scrum no mide los resultados; Estaba señalando que la respuesta y los comentarios discuten el resultado en lugar de los resultados. No comprender la diferencia de producción/resultados y su importancia puede ser un indicador de un malentendido tanto del marco Scrum como de la filosofía ágil de desarrollo de software. La Guía de Scrum ciertamente podría mejorarse con más palabrería sobre los resultados, ya que la palabra se usa solo una vez.
@AlanLarimer Edité mi respuesta para mejorar la claridad.

Decide lo que estás midiendo

¿Hay alguna alternativa además de los puntos de historia/velocidad?

Puede estimar en cualquier unidad que planee medir. Las medidas comunes incluyen tiempo, esfuerzo, dinero y objetivos basados ​​en el calendario.

  • Las "horas" son una forma de estimación basada en el tiempo.
  • Los "puntos de historia" son una forma de estimación basada en el esfuerzo centrada en el tamaño relativo.
  • "Velocity" es una forma de seguimiento y estimación basada en tendencias, y es principalmente una ayuda para la planificación de lanzamientos.

Los tres vértices del icónico "triángulo de hierro" de la gestión de proyectos son el alcance, el cronograma y los recursos. Todos los controles de proyectos y técnicas de estimación deben expresar uno o más de estos elementos, o las relaciones entre ellos.

Alternativas al Tiempo/Esfuerzo

La mayoría de los proyectos estiman los tres vértices, pero la teoría básica de la gestión de proyectos moderna es que solo puede controlar dos de los tres. No puede arreglar el alcance, la programación y los recursos simultáneamente; al menos uno de los tres necesita flexionarse.

Por ejemplo, podría estimar un proyecto en recursos y cronograma para llegar al alcance. También podría estimar el alcance y el cronograma para llegar a los recursos. Sin embargo, en general, a las empresas les preocupa más cuándo se puede entregar un proyecto, por lo que el tiempo y el esfuerzo a menudo tienen más sentido como técnicas de estimación primarias. Sin embargo, eso no significa que sean el único enfoque.

Algunas metodologías basadas en colas o ciclos no implican en absoluto una estimación basada en unidades. Por ejemplo, mientras que Kanban a menudo proporciona muchas métricas que pueden ser útiles para el seguimiento, la planificación de versiones y la mejora de procesos, los elementos de trabajo individuales nunca se estiman explícitamente.

Varios tipos de trabajo (por ejemplo, apoyo o mantenimiento) a menudo tampoco se estiman a nivel de unidad. Puede expresar dicho trabajo como una cola, un búfer circular o un cubo, pero en última instancia, todas estas son solo formas de planificar o presupuestar el trabajo a nivel macro en lugar de a nivel de unidad de trabajo.

pensamientos de despedida

Si desea evitar las estimaciones por completo, puede consultar el movimiento #NoEstimates . Sin embargo, Ron Jeffries tiene algunos pensamientos interesantes sobre eso, que creo que son de lectura obligatoria antes de subirse a ese tren en particular.

Debe evaluar y controlar su proyecto dentro de algunos parámetros básicos, y el tiempo y el esfuerzo son dos de los más comunes. Si desea alejarse de la estimación de horas-hombre o el nivel de esfuerzo, ciertamente puede hacerlo. Sin embargo, pasaría algún tiempo evaluando cuidadosamente su caso de negocios para hacerlo. Eso podría ayudarlo a descubrir una mejor métrica o ayudarlo a descubrir un problema X/Y que está impulsando la búsqueda de una alternativa. De cualquier manera, ¡tomarse el tiempo para introspeccionar sus suposiciones y su proceso generalmente es un tiempo bien invertido!

Que yo sepa, 'no'.

Las estimaciones de tiempo son el método intuitivo de estimación. Los gerentes quieren saber cuánto tiempo tomará X. ¿Solución intuitiva? Pregunte cuánto tardará X.

Hay, sin embargo, problemas con este enfoque. Por un lado, el tiempo necesario para lograr X variará dependiendo de quién complete X. Por otro lado, los humanos son malos para estimar el tiempo. Entonces surgieron los puntos de la historia, una forma de estimar en esfuerzo relativo. Desde entonces, se ha descubierto que están lejos de ser precisos. Se pueden convertir en tiempo aplicando la velocidad del equipo.

No creo que haya otro método, principalmente porque no veo qué más podría usarse de manera confiable. Tampoco veo la necesidad. Si necesita definir un proceso rápidamente y no quiere/no puede dedicar tiempo a pensarlo, calcule a tiempo. Si desea un método más preciso, use puntos de historia.

Editar: en el momento de escribir esto, me había olvidado del método 'sin estimaciones'. Aunque técnicamente se podría decir que tal método es el mismo que los puntos de la historia, solo que a cada tarea se le da el mismo esfuerzo. Incluso podría haber un continuo, con enfoques en los que todas las tareas se estiman de la misma manera, excepto por casos atípicos raros. Este es el enfoque en el que evolucionó mi último equipo: casi todas las Historias eran de 1 punto, con algunas Historias ocasionales de 0,1 o 3 puntos.

Me gustan las partes de su respuesta que básicamente cuestionan la necesidad de alternativas, porque parece haber un problema X/Y subyacente para el póster. Pero, objetivamente, existen métodos de estimación alternativos, aunque, como usted dice, los puntos de la historia suelen ser más precisos desde un punto de vista pragmático.
@ ToddA.Jacobs Al momento de escribir esto, me había olvidado del método 'sin estimaciones'. Si hay otros, no los conozco (no considero que estimar por rangos sea una respuesta literal a qué unidades se usan para la estimación, sino un enfoque útil para alterar las percepciones y aumentar la precisión al disminuir la precisión). Si hay otros, me encantaría saber de ellos.