Cartera única. Múltiples equipos. ¿Cómo manejar el refinamiento de la cartera de pedidos?

Antecedentes

Hola a todos, soy un SM experimentado, pero pensé en buscar una solución para esto entre mis compañeros. El proyecto es una migración a escala empresarial a la nube con más de 500 clientes que representan más de 300 aplicaciones.

El backlog está a cargo de un solo propietario del producto (también un arquitecto técnico de la nube) que cuenta con el apoyo de un BA.

  • tres equipos
  • Una cartera de pedidos
  • Cada equipo tiene sus propios stand-ups, planificación de sprints y retrospectivas
  • Tenemos una revisión compartida con los clientes.

Pregunta

Cuando se trata de un único trabajo pendiente que alimenta a varios equipos autónomos, ¿cuál es la mejor manera de abordar el refinamiento del trabajo pendiente o los "talleres Play Ready" o [insertar el nombre genérico para la actividad prospectiva]?

En la actualidad, BA invita a todos los desarrolladores de todos los equipos a una única sesión de refinamiento para comenzar a discutir las historias en detalle. Los desarrolladores, con razón, se resistieron y 19 de los 21 desarrolladores simplemente abrieron sus computadoras portátiles y comenzaron a codificar nuevamente.

Han solicitado un enfoque en el que el BA dedique tiempo a comprender la historia en detalle a través de sesiones 1-2-1 con desarrolladores y solo traiga esas historias a la sesión de Refinamiento para ver si están listos para la Planificación de Sprint la próxima semana. El BA se ha resistido a este enfoque ya que serían 3 sesiones de Refinamiento, prediciendo también qué equipo toma qué historias del trabajo pendiente, etc.

El Propietario del producto está abrumado realizando evaluaciones/comunicaciones técnicas para las migraciones de aplicaciones y ha delegado la preparación de la historia a los BA.

Están en un callejón sin salida y la moral ha caído por un precipicio. Como el SM más experimentado, los otros SM me han entregado este pase de hospital para que lo resuelva.

Fuera del ámbito

Hemos resuelto muchos problemas en esta entrega, incluido el traspaso operativo, la definición de hecho, etc., así que no quiero repetirlos.

Comunidad, probablemente cerraré esta pregunta y la eliminaré, ya que sufre lo mismo que afecta a la mayoría de las preguntas relacionadas con Agile; inflación masiva del alcance. Pregunté cómo mejorar el refinamiento del Backlog y en cambio ya tengo dos respuestas; uno que dice "Elimine Scrum y vaya a Kanban" y el otro que dice "Despida a los arquitectos de su solución y deje que los equipos Scrum decidan la visión estratégica del programa en la nube y las migraciones de aplicaciones". Si bien tienen buenas intenciones, son efectivamente tonterías.
¿Por qué se resistieron exactamente, cuál era su lógica? ¿Cuál fue el formato del refinamiento (20 personas sentadas en una habitación escuchando cómo el PO y el BA resuelven la vida)? ¿Qué falta en los elementos de la cartera de pedidos que el refinamiento se realiza como eventos formales y no de forma continua (como la mayoría de los proyectos de código abierto de GitHub, lo que indica que el equipo carece de un sentido de propiedad del trabajo)? Podría estar confundido, pero la última oración de la sesión parece decir que BA predice quién tomará las historias.
Tres equipos con un backlog es correcto. Lo que probablemente falte es el Equipo de Integración (si sigues a Nexus) o algún otro mecanismo de coordinación entre los equipos de características. Parece que el BA es la restricción de recursos, pero la forma en que lo resuelve depende más de la política organizacional que rodea el rol de BA que cualquier otra cosa en mi humilde opinión.
No daré una respuesta ya que solo soy un desarrollador humilde y no tengo las palabras para escribir algo completo. Sin embargo, en un proyecto mío anterior en una situación similar (1 BA, más de 20 desarrolladores de 3 equipos) enviamos representantes a la reunión de preparación y todos acordaron cumplir con lo que se decidiera allí. En nuestro caso, enviamos al líder del equipo y a un desarrollador sénior de cada equipo de desarrollo. En general, esto funcionó ya que nuestros clientes potenciales/superiores podían hablar sobre cualquier parte del código base con autoridad. Si sus desarrolladores son muy especializados, es posible que esto no funcione.
@ Vlad274 ¿desarrollador humilde? No seas tonto. Una gran sugerencia. Gracias.

Respuestas (5)

Puedo ver por qué los desarrolladores se han negado, ya que el enfoque actual no suena constructivo.

Tampoco veo un problema con su solicitud, ya que básicamente piden refinar las historias con los miembros del equipo correctos o subconjuntos del grupo de desarrollo general.

Desde la perspectiva de BA, y habiendo desempeñado el papel yo mismo, también entiendo los desafíos de realizar múltiples reuniones de refinamiento.

Dos sugerencias para ofrecer++:

  • Considere cuándo está realizando las sesiones de preparación de trabajos pendientes. El BA está retrocediendo porque la configuración actual probablemente no permita suficiente tiempo de refinamiento
  • Trate el refinamiento como un proceso continuo; no debería ser necesario esperar hasta la hora de la reunión designada si hay algo que podría solucionarse antes (esto requiere trabajar en conjunto con el scrum master, por lo que se minimizan las interrupciones del sprint actual)

++ Las sugerencias son de este artículo, consulte las opciones 3 y 4. http://www.romanpichler.com/blog/when-should-product-backlog-grooming-take-place/

En primer lugar, asumiré que esta migración es el único proyecto en el que cualquiera de los equipos tiene que trabajar actualmente.

Para mantener una mentalidad de Scrum, debe encontrar "epopeyas" que un solo equipo de Scrum pueda manejar en su totalidad y distribuir las epopeyas de manera uniforme entre los equipos hasta que se haya entregado el proyecto.

Si no hay absolutamente ninguna forma de que las historias de migración se puedan dividir en "Epics", entonces la única opción razonable es hacer que todos los equipos trabajen juntos desde el mismo tablero con el mismo horario. De lo contrario, ahogará el negocio en la administración de Sprint. Dejaría Scrum y trabajaría desde un tablero Kanban, con cada desarrollador eligiendo una tarea a la vez hasta que el proyecto esté terminado.

Por supuesto, es posible que su empresa no apruebe abandonar la metodología Scrum.

También creo que no ha asignado suficientes recursos de BA al proyecto. Un BA no puede soportar tres equipos Scrum al mismo tiempo, y el BA se convertirá en el factor limitante del proyecto. Las sesiones 1-2-1 con el BA pueden ser adecuadas para los desarrolladores, pero requerirán incluso más tiempo que la sesión de preparación única. No es necesario que todos los desarrolladores estén en la sesión de preparación, un par de representantes de cada equipo deberían ser suficientes, quienes pueden transmitir sus conocimientos al resto.

+1 por señalar que un BA es un cuello de botella potencial
Gracias Baracus aunque has intentado solucionar un problema que no tengo. Sin embargo, gracias por tu párrafo final.
+1 pero dudo seriamente que tener 20 personas en una reunión consuma menos tiempo que tener reuniones de preparación más pequeñas. Puede parecer que tener más reuniones más pequeñas tomará más tiempo, pero serían reuniones mucho más eficientes. En última instancia, requiere menos tiempo para obtener mejores resultados.

¿Quién posee las soluciones?

En Scrum, el equipo es dueño de la solución. Usted menciona en la pregunta que la OP está haciendo mucha evaluación técnica. Espero que el BA esté haciendo algo más mientras prepara los elementos atrasados. Si el equipo solo espera recibir soluciones listas para usar, entonces no debería sorprender que no vean valor en dedicar tiempo al refinamiento de la cartera de pedidos.

Entonces, lo primero para resolver el problema debe ser volver a poner la solución en manos del equipo de desarrollo: déjelos hacer el análisis técnico y planificar las migraciones. La OP debe centrarse en el valor comercial y la priorización de los esfuerzos.

Así que volvamos al refinamiento de la cartera de pedidos

Una vez que haces esto, toda la conversación se vuelve mucho más fácil. He trabajado antes en algunos esfuerzos de migración a la nube y, por lo general, son bastante complejos. Esos equipos probablemente necesitarán hablar entre ellos, mucho. Si son dueños de la solución, espero que hagan al menos parte del refinamiento de la cartera de pedidos juntos, y luego lleven parte de su trabajo a sus equipos individuales para refinar aún más. LeSS ofrece una posible solución en este caso ( https://less.works/less/framework/product-backlog-refinement.html )

Eso no es posible. Agradezco su respuesta, pero su respuesta es una reestructuración corporativa masiva de un programa de más de 200 personas.

En la actualidad, BA invita a todos los desarrolladores de todos los equipos a una única sesión de refinamiento para comenzar a discutir las historias en detalle. Los desarrolladores, con razón, se resistieron y 19 de los 21 desarrolladores simplemente abrieron sus computadoras portátiles y comenzaron a codificar nuevamente.

Si tiene un par de equipos de scrum de tamaño mediano, esto puede funcionar. Con equipos más grandes, esto se vuelve muy complicado de manejar, incluso para los scrum masters experimentados. ¿Supongo que estas reuniones duran para siempre también?

Con eso fuera del camino, puedo recomendar lo siguiente:

  1. Deje que cada equipo decida quién asistirá a las reuniones de refinamiento de su equipo. Esto puede y debe cambiar de vez en cuando. De esta manera, tendrá menos asistentes y una reunión mucho más enfocada. Tenga cuidado con los equipos que nominan a un novato solo para llenar el espacio en blanco.
  2. Asegúrese de que estas reuniones no tomen más del 10% del tiempo de los equipos durante el sprint
  3. Sea creativo y haga que las reuniones con muchos asistentes sean divertidas (solo en los casos en que la mayoría de los desarrolladores deben asistir para brindar comentarios). Tal vez use The Big Wall . Esto se usa para la estimación, pero no veo por qué no se puede usar durante los refinamientos donde, por ejemplo, agrupa elementos dependientes en diferentes esquinas de la pared. Esto puede aumentar la participación. Recuerde, el objetivo principal de la reunión de refinamiento es reducir la dependencia entre equipos. Puede agrupar problemas poco claros/supergrandes en otra esquina para que puedan refinarse.

Supongo que la empresa está en proceso de transformación. Implementé parcialmente Scrum pero no delegué responsabilidades y conocimiento del producto a los equipos de Scrum. Lo que es más, esto obviamente no es posible de inmediato. Esto significa que tenemos desarrolladores que pueden manejar tareas técnicas pero necesitan BA para comprender los requisitos.

Lo que ya se dijo aquí BA es cuello de botella y se necesitan más BA. Si no podemos tener más BA, tal vez podamos hacer algo con sesiones 1 a 1. Son muy eficientes porque no perdemos el tiempo de varias personas, pero bloquean el intercambio de conocimientos. BA tiene sesiones 1 a 1 y esto significa que más adelante en la preparación solo esa persona sabe de qué se trata la historia. Recomendaría reemplazar los 1 a 1 con grupos pequeños que trabajan en temas relacionados para mejorar el intercambio de conocimientos. Si cada grupo tiene al menos una persona de cada equipo Scrum, debería mejorar la comprensión de los requisitos funcionales en los equipos. Si los equipos tienen una mejor comprensión y saben en qué están trabajando, deberían estar más comprometidos.