¿Por qué nuestra Planificación de Sprint no se alinea con nuestro Plan de lanzamiento original?

Nuestro equipo de scrum ha proporcionado estimaciones de alto nivel para el proyecto en el que estamos trabajando durante la reunión de planificación de lanzamiento.

El equipo proporcionó horas estimadas, así como puntos de historia para cada una de las historias en la acumulación de lanzamientos. En base a esto, llegamos a una fecha de finalización y se la comunicamos al cliente.

A medida que ingresamos a Sprints, nos encontramos en una situación en la que las historias en la cartera de pedidos debían descomponerse en varias historias y, como resultado, nuestra fecha de finalización se retrasó y le comunicamos lo mismo al cliente y él estaba de acuerdo con eso. .

También teníamos sesiones periódicas de preparación de la cartera de productos. Pero, cuando entramos en la reunión de planificación de Sprint, la estimación del equipo sobre las historias de usuario cambia nuevamente y nuevamente como resultado de eso, las historias se descomponen y el tamaño de las historias también aumenta; con esto, la fecha de finalización de la acumulación de lanzamiento también teniendo un efecto. Y esto sucedió más de un par de veces para nuestra acumulación de lanzamientos.

¿Dónde nos estamos equivocando? ¿Cómo podríamos rectificar la situación para que el equipo pueda terminar lo que se comprometió con el cliente durante la planificación del lanzamiento O al menos acercarse a lo que se prometió?

Gracias

Como usted tiene más contexto que yo, actuaré como entrenador. ¿Dónde te dice nuestro instinto que está el problema? DougB tiene algunos puntos buenos basados ​​en su experiencia. ¿Le ha planteado esto al equipo para que lo resuelva, es decir, pregúnteles dónde creen que pueden mejorar? ¿Puedo preguntar por qué está reestimando nuevamente en la planificación de sprints y qué valor está obteniendo de ello? ¿Qué oportunidades ves que podrían ayudar a cambiar el equipo?
No estoy seguro de que esté fallando , excepto en la medida en que no esté redefiniendo su plan de proyecto. Una respuesta más detallada le espera a continuación.

Respuestas (5)

Tan pronto como dijo "El equipo proporcionó horas estimadas", reconocí un problema aquí. Cuando realiza una gestión de lanzamiento de alto nivel, debe darse cuenta de que incluso aplicar puntos de historia a las épicas es una tarea realmente inexacta y solo se puede usar a grandes rasgos. Tratar de estimar realmente las horas está condenado al fracaso.

Como han dicho otros, sí, parece que su equipo no fue muy bueno en la estimación y que cambiaron las estimaciones muchas veces. Sin embargo, como gerente de producto, creo que una de las mejores cosas de Agile es que trata de aliviar los puntos débiles que surgen al tratar de planificar con mucha anticipación.

Realicé reuniones de planificación de lanzamiento con mi equipo, tanto en el nivel alto de dividir el gran proyecto en épicas y estimarlas (20, 40, 60, 80, 100 eran las opciones), como en el nivel más bajo en los pocos meses consecutivos. hasta el lanzamiento del uso de puntos de historia y velocidad del equipo. Agile nos enseña que nunca sabrá todo lo que se debe hacer para un lanzamiento hasta que esté cerca de ello: esa es la naturaleza del software y trabajar con humanos. Se perderán algunas complejidades, puede encontrar un mes antes del lanzamiento que la función que pensó que estaba perfectamente diseñada realmente necesita algunos criterios adicionales, etc. en qué trimestre espera lanzar,

Esto podría deberse a varias cosas:

  • Los requisitos. Cuanto menos detallados y claros sean sus requisitos, más puede esperar que haya un error significativo en sus estimaciones. La basura que entra produce la basura que sale
  • El proceso de estimación. Si sus requisitos son lo suficientemente buenos como para proporcionar estimaciones razonables, las estimaciones aún pueden estar fuera de lugar si el proceso no es lo suficientemente riguroso o si no se piensa lo suficiente en las estimaciones.
  • La cultura corporativa. He visto que se falsifican estimaciones para decirle a un cliente lo que quiere escuchar porque la cultura corporativa era de "Obtenga el contrato y preocúpese de cómo entregarlo más tarde". Dependiendo de su organización, también puede haber consecuencias por decir verdades desagradables.
  • El estimador. En términos generales, las personas son optimistas y le darán estimaciones en consecuencia. Esto empeora si obtiene estimaciones de alguien que en realidad no está haciendo el trabajo. Cuando obtenga una estimación, idealmente debería desafiarla y darle al estimador la oportunidad de pedir más tiempo.
  • Las expectativas. Si originalmente generó estimaciones de alto nivel, es razonable suponer que habrá una variación, quizás significativa, entre esas estimaciones y lo que resulta de una planificación más detallada. Como PM, debe administrar las expectativas de las partes interesadas brindándoles un rango de fechas de entrega que se reducirá a medida que la planificación se vuelve más detallada. Por ejemplo, si tiene una estimación de alto nivel de que el trabajo demorará 20 semanas, puede presentarle al cliente que el trabajo demorará entre 18 y 35 semanas. A medida que se completan los requisitos y sabe más sobre lo que se debe entregar y cómo, tal vez la estimación se revise a 25 semanas, pero usted la presenta como de 24 a 30 semanas.

Según la descripción que ha proporcionado, sospecho que esperaba demasiado en términos de precisión de una estimación de alto nivel. La única solución a esto es volver al equipo y pedirles que vuelvan a estimar el trabajo restante, brindándole una estimación del caso más probable y del caso más desfavorable. Preséntelos a su cliente y, si son buenos, presione el botón Restablecer proyecto y continúe.

El equipo había estimado las historias durante la reunión de planificación del lanzamiento al comienzo del proyecto en función de su mejor comprensión en ese momento. El equipo tenía que hacerlo porque la gestión del producto tenía que comprometerse con el cliente sobre cuándo se enviaría el software. .Como Project Manager dio una fecha de finalización a la gestión de productos con un nivel de confianza del 75%. En las reuniones de Sprint con más información, la estimación del equipo de los puntos de la historia está inflada porque las historias se dividieron en múltiples historias y los puntos de la historia se dispararon para cada historia, lo que resultó en un adelanto de la fecha de finalización.
En retrospectiva, podría haber sido mejor haber dicho "Tenemos un 75 % de confianza en que podemos llegar a la fecha X y un 95 % de confianza en que podemos llegar a la fecha Y", o algo por el estilo. Al final del día, puede evitar muchos problemas si promete menos y cumple en exceso, en lugar de hacerlo al revés.

TL;RD

La planificación de versiones es un objetivo de gestión estimado , generalmente basado en estimaciones del nivel de esfuerzo de grandes temas o épicas. Sprint Planning es un compromiso de equipo basado en historias de usuario del tamaño de una iteración. Cumplen diferentes funciones, pero la clave es recordar que las estimaciones no son garantías.

Los cambios de horario no implican necesariamente que sus estimaciones sean intrínsecamente incorrectas. Su objetivo debe ser mejorar la precisión de sus estimaciones, no cumplir objetivos de programación arbitrarios. Sin embargo, mejorar la precisión de sus estimaciones debería reducir las variaciones en su programación basada en estimaciones a niveles aceptables.

Planificación de versiones en desarrollo iterativo

La planificación de lanzamiento se trata principalmente de definir hitos y fechas de envío previstas. El cono de incertidumbre siempre es mayor al comienzo de un nuevo proyecto y, por lo tanto, la precisión del plan de lanzamiento inicial debe ser un rango con un intervalo de confianza definido.

Debido a que Scrum es un proceso de desarrollo iterativo, la planificación de lanzamiento debe revisarse en cada iteración. En función de lo que se conoce actualmente al comienzo de cada iteración, la cartera de productos se puede modificar para reducir el alcance o cambiar las prioridades para alcanzar fechas de lanzamiento fijas, o las fechas de lanzamiento se pueden mover para reflejar con mayor precisión el progreso real del equipo hacia lo planificado. liberación.

Incrementos liberables

Hay una serie de ideas centrales detrás del desarrollo ágil, pero uno de los conceptos centrales es la idea de iteraciones que producen "incrementos potencialmente liberables". En otras palabras, si bien es posible que un sprint dado no contenga el conjunto completo de funciones planificadas para un objetivo de lanzamiento determinado, cada sprint debe producir una función funcional, funcional e (idealmente) visible para el usuario que podría lanzarse.

Dicho de otra manera, cada sprint debería dar como resultado un producto que haya generado una cierta cantidad de valor ganado. Si bien es posible que el producto no tenga todas las funciones, es funcional y potencialmente se puede enviar al final de cada sprint. Esto brinda a las partes interesadas la capacidad de convertir el valor ganado en valor de mercado al final de cada iteración, aunque ciertamente no están obligados a hacerlo.

Reestimar continuamente

La clave para las implementaciones exitosas de Scrum es reestimar continuamente. Esta reestimación obviamente incluye épicas, temas e historias de usuarios, pero también incluye la reestimación de los cronogramas del proyecto y el alcance de los hitos objetivo.

Se esperan desviaciones de las estimaciones iniciales, y son manejadas por el proceso de inspección y adaptación integrado en Scrum. Sin embargo, si encuentra que sus estimaciones no se vuelven más precisas con el tiempo, entonces necesita:

  1. reevaluar su proceso de estimación para ver dónde podría mejorar, y
  2. determinar si su línea de base de programación original se basó en suposiciones erróneas.

La administración también debe aceptar el cambio

"Abrazar el cambio" no es competencia exclusiva del equipo de desarrollo en Scrum. También es responsabilidad del propietario del producto y las partes interesadas adoptar todos los cambios necesarios en el alcance, el cronograma, los recursos, las fuerzas del mercado y otras realidades que se necesitan para garantizar que el proyecto tenga éxito o fracase antes de tiempo.

Apegarse a un plan hecho hace meses o años, sin hacer un balance de dónde está ahora el proyecto , es una de las formas más comunes en que los proyectos fallan. La agilidad no garantiza el éxito; solo espera que la visibilidad y la transparencia del proyecto permitan a las partes interesadas tomar decisiones bien informadas.

Gracias por la respuesta. Estoy completamente de acuerdo con todo lo que dijiste. En un mundo ágil ideal, el propietario del producto del lado del cliente es probablemente parte del equipo Scrum. En nuestro caso, al cliente final solo le importa lo que podemos proporcionar como proveedor en términos de alcance y plazos. Por lo tanto, la revisión frecuente de los planes tendrá un efecto en el alcance o el cronograma o en ambos. Por lo tanto, mi preocupación es cómo puedo estabilizar un plan y las estimaciones de tal manera que nosotros, como organización, entreguemos al cliente lo que necesita en función de nuestra estimación inicial. promesa
@ramu No existe una metodología conocida que le permita mantener una fecha de lanzamiento estática con una garantía inquebrantable de cero cambios en el alcance o los recursos durante la vida útil del proyecto. Si esa es la expectativa, entonces la falla está en comunicar efectivamente la Teoría de las Restricciones al cliente. ¡Buena suerte!

En Scrum, enseñamos a los equipos a no asumir "Riesgos" donde no les corresponde hacerlo. Su equipo hizo su mejor estimación al principio y, a medida que pasa el tiempo, usted y el cliente se dan cuenta de que la capacidad de estimación del equipo es muy mala.

La primera pregunta que le voy a hacer al OP es, ¿qué mitigación de riesgo tenía él/ella en caso de que un equipo probablemente estimara incorrectamente? Creo que está muy bien aceptado que los equipos técnicos son malos en la estimación, independientemente del método.

El siguiente es si ha estado rastreando la tasa de trabajo (velocidad) de los equipos en comparación con la estimación original. Independientemente de la técnica que utilice, la velocidad es, en última instancia, una relación que se aplica a las estimaciones originales. Por ejemplo, la tendencia indica que el equipo tarda un 72 % más de lo estimado. Por lo tanto, aplicar una velocidad a la estimación original debería darle una indicación de la fecha objetivo "real".

Scrum no dicta oficialmente cómo deben estimar los equipos y cómo se debe realizar la planificación de lanzamiento. Sin embargo, hay varios patrones probados que funcionan.

Principios básicos

  1. Prepare su cartera de productos a un nivel en el que el equipo tenga una intuición de lo que se debe hacer. Esto debe hacerse muy rápidamente y sin un análisis completo.

  2. Luego, el equipo debe estimar todos los PBI con una escala relativa utilizando puntos de la historia o tallas de camisetas (la mediana puede ser el doble de grande que la pequeña). Teóricamente, un PBI que es un 2 debería requerir aproximadamente el doble de esfuerzo/tiempo que un 1.

  3. Cuando se crean nuevos elementos, el equipo también debe estimarlos. El equipo aún debe estimar en comparación con la escala original y no tener en cuenta su rendimiento y herramientas mejorados; hacer esto da como resultado una relación aplicada a la velocidad que le dará resultados débiles.

  4. Cree tareas en la planificación de sprints para ayudar al equipo a concentrarse en cómo entregar el PBI. Si realmente desea estimar tareas, puede hacerlo, pero a menudo encuentro que esto no agrega mucho valor.

  5. Simplemente haga un seguimiento de cuánto trabajo ha entregado el equipo en un sprint, es decir, el equipo logró completar 42 puntos de historia en el sprint. Esta es su velocidad.

  6. Por lo tanto, si tiene 450 puntos restantes en su cartera de productos, le llevará once sprints completarlos (450/42 = 11, redondeado hacia arriba).

  7. Educar a la gerencia y PO que el equipo da un tiempo ESTIMADO y NO REAL

Como Scrum Master, su desafío es ayudar al equipo primero a estabilizar su velocidad y luego a mejorarla reduciendo el desperdicio.

Me parece que estás haciendo un scrum en cascada y ahí es donde te encuentras con problemas. Su "fecha de finalización" debe ser el final de su sprint. No se debe comprometer nada más allá de eso. Parece que estás tomando un conjunto gigante de historias a través de múltiples sprints y comprometiéndote con fechas muy lejanas para completarlas todas. Eso es cascada y sin una planificación y un diseño iniciales de estilo cascada, verá exactamente el problema con el que se está metiendo.

En el mundo perfecto de scrum, el tiempo es fijo, las historias son ajustables. Esa "fecha de finalización" no debería cambiar, solo la cantidad de historias comprometidas y solo durante la planificación del sprint. Si está en medio de un sprint y resulta que sus estimaciones no fueron las correctas, llame al propietario del producto y negocie la acumulación de sprint en función de la nueva comprensión. Eso podría significar volver a colocar las cosas en la cartera de productos, intercambiar historias o, en circunstancias extremas, abortar el sprint y comenzar de nuevo. Si está siguiendo Scrum, un aborto completo de un sprint solo debería retrasarlo una semana o dos. No está mal en comparación con la cascada, donde problemas similares pueden retrasarlo meses.

Una de las premisas básicas de las metodologías ágiles es darnos cuenta de que somos malos estimando y que cuanto más lejos se está de la estimación, más incorrecta suele ser. Ese es un punto importante detrás de hacer sprints cortos (de 2 a 3 semanas). Tan pronto como comience a dar estimaciones comprometidas que están a meses de distancia, volverá a la cascada y necesitará planificar y diseñar como una cascada.

No estoy de acuerdo con la declaración de "scrum muy cascada" y que esto es sacar conclusiones precipitadas sin hechos. Existen desafíos de estimación obvios y una probable comprensión de la estimación.
La pregunta menciona estimaciones que cambian negativamente durante la planificación del sprint y una acumulación de lanzamiento con una fecha de finalización. Esto demuestra que se han comprometido con fechas y funciones más allá del sprint actual. Puede tener todas las reuniones de pie, las paredes de tarjetas y los puntos de la historia que desee, pero si se compromete con una fecha de lanzamiento de ciertas características dentro de varios meses, no es ágil y eso no es scrum y fingir que le gusta. Esto solo está haciendo mal el desarrollo de la cascada.
Para nuestro proyecto, al cliente final no le importaría si usamos Agile o Waterfall, es un esfuerzo del equipo de ingeniería para entregar en incrementos a la gestión del producto. Por lo tanto, como organización tenemos que comprometer una fecha de lanzamiento, aunque podemos comprometernos a nivel de Sprint con la gestión de productos. Entonces, el problema es que, como empresa, no podemos ir al cliente final y seguir cambiando el alcance/las fechas con frecuencia. Ahí es donde está el problema principal
Y es un problema común. Lo he tratado en casi todos mis proyectos basados ​​en scrum. No es razonable pedirle a un equipo que confirme fechas en un trabajo que no se ha analizado por completo. Scrum elimina ese análisis inicial al postular que las cosas cambiarán tanto durante el proyecto de todos modos que esas estimaciones iniciales no seguirán siendo válidas. La solución es que el equipo solo se comprometerá a trabajar en el sprint actual y ese trabajo se podrá liberar por completo al final del sprint.
(Continuación...) Una vez que comience a dar estimaciones de "registro de pedidos" más allá del sprint actual, ya no aceptará la solución scrum y tendrá que volver a hacer todo ese análisis inicial, al estilo cascada. Simplemente no veo otra manera. También tenga en cuenta que el desarrollo incremental no es igual a scrum. Puede hacer un desarrollo incremental dentro de una metodología en cascada.