El propietario del producto exige nuevas funciones mientras ha comenzado el sprint

Actualmente estoy trabajando en el proyecto X y el propietario de mi producto sigue impulsando nuevas funciones para el trabajo pendiente del sprint que debe completarse en ese sprint.

Empujar nuevas funciones a la cartera de pedidos no es el problema, el problema radica en el hecho de que él desea que yo y los otros desarrolladores las completemos de inmediato.

La forma en que nuestro PO lo maneja no es para nada profesional, ya que discutimos la importancia de las historias de usuario actuales en la reunión de sprint para el próximo sprint.

¿Cómo puedo dirigir esto a mi PO de manera profesional?

Sabes que agregar funciones a un sprint que se está ejecutando actualmente es la antítesis del concepto de scrum, ¿verdad?
¿Algún Scrum Master en el lugar que le pueda explicar que un sprint es una unidad de trabajo no modificable una vez iniciado? Si la empresa o el equipo acordaron hacer Scrum, entonces esto no es Scrum y ustedes deben hablar de ello como equipo.
@AlexandreVaillancourt, ¿qué pasa si descubre un agujero de seguridad masivo en su producto el primer día del sprint? ¿Qué sucede si encuentra una biblioteca de código abierto que tiene la funcionalidad en la que planeó trabajar? ¿Qué pasa si el cliente cuyo código estabas escribiendo quiebra? "El sprint nunca se puede cambiar" no es una idea viable. Se trata de si estas nuevas características solicitadas son lo suficientemente importantes como para cambiar los planes de trabajo y, de ser así, cómo se hace.
Buena información para ayudarte aquí: programmers.stackexchange.com/questions/149871/…
@dan1111 No se incluye un agujero de seguridad. es un error
@ dan1111 Tienes toda la razón, y de las muchas cosas que leí al respecto, si el sprint necesita un cambio de alcance, se termina y se inicia un nuevo sprint para abordar los problemas urgentes. Sin embargo, desde el OP siento que los problemas planteados por el PO son más triviales que eso y que podrían esperar hasta el próximo sprint.
@ dan1111 El punto es que esa no es la pregunta indicada.
@Paparazzi arreglar un agujero de seguridad podría implicar agregar una nueva función. Pero en cualquier caso estaba respondiendo al comentario de Alexandre de que los sprints no se pueden cambiar.
@AlexandreVaillancourt - No, mira mi respuesta a continuación. El Manifiesto DA LA BIENVENIDA a los cambios, cualquiera que te haya dicho lo contrario era un vendedor de aceite de serpiente y no conocía Scrum. Esta es la falacia más común en SCRUM hoy en día.
@TheWanderingDevManager Hmm, correcto; es confuso; de acuerdo con la Guía de Scrum : "Durante el Sprint: no se realizan cambios que puedan poner en peligro el objetivo del Sprint; el alcance puede aclararse y renegociarse entre el propietario del producto y el equipo de desarrollo a medida que se aprende más". Esto es un poco contradictorio a primera vista, pero sí, parece que siempre que los cambios realizados en el Sprint Backlog mantengan su enfoque en el Sprint Goal, no debería haber ningún problema, siempre que el equipo tenga tiempo para hacerlo. dentro del sprint. Debería leer ese documento de nuevo :P
@AlexandreVaillancourt - ¡Exacto! No permite cambios arbitrarios, pero ser capaz de reaccionar ante cosas que necesitan cambiar es parte de ser ágil. Decir que no podemos hacer algo diferente a lo que hemos planeado es volver a Waterfall, y muchos entrenadores de Agile/Scrum no entienden eso, ven "No se hacen cambios" y sus ojos se nublan después de eso.
@TheWanderingDevManager ¡Gracias por el consejo! ¡Esto mejorará mi Scrum-fu!
@AlexandreVaillancourt - ¡Me alegro de ayudar!
Es de esperar que en los últimos ~2 años haya aprendido más sobre el marco del documento autorizado, The Scrum Guide , vea las inexactitudes en las respuestas y tenga mejor información para abordar los problemas.

Respuestas (7)

De hecho, el Manifiesto Ágil da la bienvenida a los cambios tardíos, consulte el punto 4:

Responde al cambio sobre el siguiente plan

Y la guía de scrum tiene esto:

Durante el Sprint:

No se realizan cambios que puedan poner en peligro el Sprint Goal ;

Los objetivos de calidad no disminuyen; y,

El alcance puede aclararse y renegociarse entre el propietario del producto y el equipo de desarrollo a medida que se aprende más .

Lo importante para ti es que tu equipo tiene una velocidad y has aceptado historias en el sprint en base a eso.

Lo que debe hacer ahora es hacer que la orden de compra establezca la prioridad dentro de la acumulación de esta historia. Si está por encima de un piso (o pisos) actual, lo estima y mueve los pisos más bajos hacia afuera hasta que equilibre su velocidad. Si la historia está por debajo de algo en el sprint actual, entonces, por definición, es menos importante, por lo que tendrá que esperar. Si la historia está al final del sprint y no hay tiempo suficiente para hacerlo, comience y continúe con el siguiente sprint.

Es (intencionalmente) así de simple, o es más importante y lo priorizas sobre el trabajo existente, o no lo es. Si el PO también lo quiere, recuérdeles que la velocidad es una métrica de lo que puede hacer, no un objetivo , si quieren cargarlo, pueden hacerlo, pero no lo lograrán.

Otra cosa es acordar un Sprint Goal con el PO/negocio según la guía. Si entra algo, también lo comparas con eso (¿Esta historia nos ayuda a alcanzar la meta?), si no, entonces necesita una llamada prioritaria sobre el trabajo que estás haciendo. Entonces, un error urgente puede ser prioritario, pero algo más se degrada porque no es parte del cumplimiento de la meta, o tal vez abandone el Sprint por el trabajo de mayor prioridad).

Acordado. Además, si el propietario del producto cambia las prioridades con frecuencia y sin ayuda, insistir en este proceso (y en una reunión para realizar los cambios) cada vez les ayuda a ver cómo las prioridades cambiantes interrumpen los planes.
Diría que si esto sucede todo el tiempo, si normalmente tiene 300 personas-hora por sprint, tal vez solo asigne 250 personas-hora por sprint con los últimos 50 dedicados a los "trabajos urgentes". Tal vez reserve los últimos 50 con cosas que quizás desee hacer en este sprint, pero que puede posponer si es necesario. Entonces, si su director ejecutivo presenta demandas, sabe de antemano lo que está recortando por ello.
+1 para "algo más se degrada ya que no es parte del cumplimiento de la meta". A riesgo de repetir lo que dijo JeffO. Todo tiene un precio. Cualquier característica nueva tiene un precio. No permita que el propietario de su producto se salga con la suya agregando cosas a la pila sin reequilibrar la hoja de cálculo de prioridades y sin cortar cosas en otros lugares.
@corsiKa: Pero eso solo permite a aquellos que quieren trabajar en el sistema. ¿Hasta cuándo las 50 horas ya no les alcanzan? Dentro de unos meses casi puedo garantizar que ya no estarás haciendo scrum.
@Ligereza ¿Y qué? Scrum no es un objetivo. Y ciertamente no es un santo grial. Si no funciona para su situación laboral, quédese con las partes que funcionan y siga adelante. No olvide que el objetivo es entregar un buen producto.
@Bernhard: Claro, pero cuando su situación laboral está haciendo todo lo posible para usar el peor sistema de gestión posible, a pesar de los esfuerzos masivos para corregirlo, eso no es algo que deba aceptar ciegamente. "Ser estúpido" no es una "situación laboral" válida.

Estoy de acuerdo con todas las afirmaciones anteriores sobre Agile que permite flexibilidad y cambio.

Pero (¡muy grande, pero!) He trabajado con PO que a menudo son bomberos durante todo el sprint de Scrum. Si eso sucede, puede ser muy molesto y/o desmoralizador para el equipo tener que adaptarse constantemente a estos cambios. ¡Este cambio continuo de prioridades también puede afectar seriamente los lanzamientos y, como resultado, tendrá un efecto negativo en el ROI!

En estos casos, he formado parte de equipos donde se tomó la decisión de abandonar Scrum y experimentar con Kanban. Este último ofrece mucha más flexibilidad en la definición de requisitos que Scrum. Kanban también es más adecuado para la entrega continua que para los lanzamientos regulares.

Para leer más, desde dos perspectivas, eche un vistazo a estos enlaces:

https://www.scrumalliance.org/community/articles/2014/july/scrum-vs-kanban

http://kanbantool.com/kanban-library/scrum-and-kanban/kanban-vs-scrum-how-to-make-the-most-of-ambos

Finalmente, tomando una cita de la última referencia

...nunca dejes de mirar hacia atrás, para aprender de tu experiencia y seguir experimentando, ya que nunca sabes qué posible solución puede resultar mejor para ti.

También he estado en la situación de cambiar de Scrum (donde los sprints se jugaban constantemente con la mitad del sprint) a Kanban y funcionó mucho mejor para ese equipo y compañía.

Hablando como alguien que ha sido CTO y Jefe de Producto en diferentes organizaciones, estoy en gran medida de acuerdo con @The Wandering Dev Manager pero quería agregar más de lo que permitiría un comentario.

Esto no debería estar sucediendo como se describe. Veo muchas señales de alerta tanto en la frecuencia como en la inmediatez de las solicitudes. Sugiero tener una conversación honesta con el propietario del producto sobre su proceso actual y cómo afecta su trabajo. También comenzaría a buscar otro trabajo, ya que esta situación podría no mejorar.

Si el propietario del producto es simplemente malo en su trabajo, eso es realmente bueno: puede mejorar o puede ser reemplazado. Desafortunadamente, muchas veces existen situaciones como esta porque el propietario del producto es bastante bueno en lo que hace, pero se ha visto obligado a seguir ciertos patrones debido a la presión desde arriba. No todo el mundo puede invitar a su director ejecutivo a despedirlos en cada batalla. Cuando este es el caso, la situación no mejorará.

En general, los cambios durante un sprint están bien, pero debes estar preparado para ellos. Siempre me aseguro de que mis equipos de producto y tecnología completen los sprints con suficientes puntos para manejar las "soluciones urgentes" y los errores. Cuando ejecuté un producto en una empresa de medios, mis equipos sabían que debían reservar un número determinado de puntos en cada sprint; siempre surgía algo, ya que esa era la naturaleza de nuestro negocio. Nuestro sistema funcionó, porque siempre podíamos planear que sucediera algún tipo de evento. Si un evento pronosticado de alguna manerano sucedió, entonces el tiempo sobrante podría usarse para proyectos personales, tareas domésticas o [¡jadeo!] Salir adelante. El manejo de las características/cambios de última hora siempre quedó a discreción del gerente de producto y en consulta con el gerente de proyecto y el gerente técnico de ese equipo. Siempre nos aseguramos de que la moral del equipo también fuera un factor. Nunca se prometió nada a las unidades de negocio más que un "mejor intento de entrega".

A veces, se toma una decisión comercial extremadamente mala, y nadie se da cuenta de esto hasta que comienza el sprint. Esto ha pasado mucho con las startups a las que aconsejo. Manejar este tipo de situación es bastante simple: tiene una reunión de todos para volver a señalar, volver a priorizar y volver a programar. El sprint es abortado; empiezas desde cero.

Es posible que las partes interesadas de su negocio no entiendan que se necesita una planificación adecuada por muchas razones. Minimiza los gastos generales administrativos, permite que los sistemas interconectados se construyan de manera más eficiente, permite la previsión y la planificación en cómo se diseña una solución... Hay una larga lista de razones, pero solo hay 2 conclusiones principales que las partes interesadas y los propietarios del producto deben comprender:

  • Pierdes más tiempo y dinero con cambios y solicitudes inmediatas. Este método es siempre el menos eficiente.
  • Daña la moral del equipo y la satisfacción laboral de los empleados con este flujo de trabajo. Tus desarrolladores se estresarán, se enojarán y finalmente se irán.

Cuando el cliente es una organización interna, esto significa que los jefes de departamento deben discutir. Si el cliente es un cliente externo, la empresa debe decidir si la relación comercial es reparable o incluso justificada.

En teoría, estoy de acuerdo con @The Wandering Dev Manager, pero creo que él / ella está facilitando potencialmente que el PO cambie el sprint.

Es trabajo del PO resistir el cambio al sprint (no prevenirlo) de entidades externas (clientes). A menos que haya alguna situación crítica, el sprint debe considerarse inmutable.

Además, se supone que el ciclo de sprint es corto para que cualquier cosa nueva que surja pueda priorizarse en el siguiente sprint sin afectar al cliente. Si tiene sprints de varios meses, entonces realmente no está siendo ágil. El objetivo es un cambio rápido con algún cambio visible (2-4 semanas).

Pero un sprint puede cambiar. Si lo hace, se debe calcular el costo de los elementos nuevos y eliminar una cantidad equivalente de trabajo del sprint para compensar.

Entonces, ¿qué debes hacer al respecto? Bueno eso depende. El trabajo de PO es mantener el sprint. ¿Lo está haciendo? ¿Está dejando el trabajo apropiado para compensar? De lo contrario, "The Scrum Master" debería hablar con el PO.

Es Él, y no estoy de acuerdo contigo. El trabajo del PO es maximizar el ROI del producto, si eso significa cambiar, entonces eso significa cambiar, incluso si es necesario abandonar el sprint. El sprint nunca es inmutable, es posible que desee discutirlo, pero no aceptar un cambio válido es un antipatrón Agile, uno que los 'Coachs Ágiles' de todo el mundo sacan a relucir.
De hecho, el trabajo del PO es maximizar el ROI del producto, incluso si eso significa no usar sprints en absoluto o no hacer Agile en absoluto. Si el proceso no se adapta al negocio, el proceso pierde. Un sprint es solo un nombre para una colección de trabajo que pronosticas para un bloque de tiempo en particular. Si eso no es lo que estás haciendo, porque eso no se adapta al negocio, simplemente no lo llames un sprint.
Si y no. El cambio constante resulta en pérdida de productividad. Si eso sucede más de vez en cuando, aumenta la velocidad. He visto que en mi último gran cliente donde el PO estaba priorizando el trabajo pendiente 3 veces por semana, el resultado fue que nunca se hizo NADA. Empiezas con algo, luego lo empaquetas una y otra vez.
@TheWanderingDevManager: Cambiar el sprint reducirá el ROI en el caso general. Es el trabajo del PO discutir con el cliente y asegurarse de que el cambio sea la mejor opción (no solo cambiar por el bien de los cambios). Por lo tanto, deben resistir (en consejo eso es generalmente malo) pero deben facilitar si esa es la mejor opción. También deben recordarle al cliente que el sprint es corto por una razón, por lo que no es necesario cambiarlo con frecuencia.
@TheWanderingDevManager: Creo que en realidad estamos de acuerdo en lo que se debe hacer. Solo quiero enfatizar que obtener el mejor ROI no significa aceptar lo que el cliente quiera solo porque es el cliente. El trabajo no es actuar como el hombre que sí para el cambio de sprint, sino actuar como el punto de razón y asegurarse de que el cliente esté dispuesto a pagar el costo de un cambio en medio de un sprint y tratar de evitar que el equipo sea aleatorio. por cambios. Pero si el sprint debe cambiar, ellos son los responsables y deben hacer el cambio correctamente.
Creo que la palabra "resistir" (pero no "prevenir") en esta respuesta es buena. Cambiar de rumbo cuando ha planificado su sprint perjudicará la productividad, pero el propósito del sprint y del equipo de desarrollo es respaldar el negocio , no producir un modelo de cómo se supone que debe funcionar el desarrollo ágil. Si hay que hacer algo inesperado, hay que hacerlo .

Esto es lo que causa su orden de compra:

He estado haciendo una de las tareas en el sprint. He realizado cambios en mi base de código local. No estoy del todo terminado. Una vez que termino y estoy satisfecho de que todo está a la altura, pasa a una revisión del código, pasa por el control de calidad y luego se integra en el código de desarrollo compartido. Si transcurre mucho tiempo entre que empiezo la tarea y estoy lista, habrá cambios en el código de desarrollo compartido que entrarán en conflicto con mi trabajo, lo que generará trabajo adicional y riesgo.

Su PO, si obtiene lo que quiere, me obligaría a interrumpir mi trabajo y continuar con otra cosa. Algún tiempo después, vuelvo a la primera tarea. En ese momento, he olvidado la mitad, así que me toma tiempo comenzar de nuevo. Las cosas que estaban en mi mente que necesitaban ser hechas se dejan caer. Caídas de calidad. Cuando termino, hay muchos más cambios en el código compartido, muchos más conflictos, más tiempo perdido.

Al mismo tiempo, destruye totalmente cualquier motivación. Empezar una tarea y que te digan a la mitad que no la quieres es totalmente desmotivador. Y estar desmotivado no aumenta exactamente la productividad. ¿Por qué deberías esforzarte en la siguiente tarea cuando esperas que también se lleve a cabo?

No me sorprendería que este tipo de cosas, que ocurren regularmente, reduzcan a la mitad la productividad de un equipo. En otras palabras, el material nuevo que se insertó en el sprint no se terminará más rápido que si el PO hubiera sido paciente, mientras que el material original se retrasa enormemente. En lugar de dos semanas para los artículos originales y dos semanas para los artículos nuevos, se tarda una semana en comenzar con los artículos originales, tres semanas para los artículos nuevos y dos semanas para terminar los artículos originales. En lugar de cuatro semanas + un equipo feliz, se necesitan seis semanas + produce un equipo infeliz y desmotivado.

Lo que hace su PO puede ser completamente legítimo. Supongo que está en un negocio comercial y el dinero de sus clientes pagará su salario. Hay momentos en que su gente de negocios dice "OK, cambio total de plan" y cuando debe aceptar eso.

Por otro lado, es su responsabilidad hacia los propietarios de la empresa entregar un producto de calidad a un ritmo sostenible, no arruinar su arquitectura porque alguien tiene una idea nueva cada semana.

  • Si las historias de alta prioridad son pequeñas y encajan en el producto, considere usar su proceso de errores para ellas, incluso si son historias nuevas. (Supongo que tiene un proceso definido para obtener correcciones en el sprint actual).
  • Si hay cambios importantes en la prioridad, sugiera al PO que cancele el sprint actual. Devuelva todas las historias inconclusas a la cartera de pedidos. Recuérdele al PO que cualquier trabajo que ya haya realizado en historias inconclusas se puede desperdiciar si no puede reiniciar el trabajo y fusionarlo pronto.
No estoy de acuerdo con la primera viñeta. Mover más cosas en un sprint, incluso si es pequeño, requiere margen de maniobra. O bien a) hay puntos de sprint sin gastar (malo) b) soltar alguna historia para que encaje con los nuevos (adecuado) c) sobrecargar el sprint (malo). d) Déjelo a un lado para el nuevo sprint (recomendado, pero no siempre posible dada la agenda de PO)... Nunca use el proceso de revisión/error para nuevas características.
También abortar un sprint es realmente malo.
@Mindwin, siempre reservamos algo de tiempo para analizar nuevos errores, preparar presentaciones en PowerPoint para explicar cosas a la gerencia, hacer frente a uno o dos días de baja por enfermedad, etc. Si el sprint está lleno al 100 %, no está teniendo en cuenta lo inesperado. .

En situaciones como esta, tener un proceso para esperar lo inesperado es clave. Por ejemplo, una póliza en la que se cambia un piso por otro piso del mismo tamaño es una buena forma de mantener el equilibrio:

En el proceso Scrum, scope creepocurre cuando el propietario del producto, o cualquier otro miembro del equipo Scrum, aporta trabajo adicional (p. ej., "bañado en oro" o colación de deuda técnica) en el sprint sin discutirlo con el equipo. Todo el equipo siempre debe negociar sacar una historia de usuario del Product Backlog y traerla al Sprint Backlog actual. Sin embargo, si el equipo ha terminado todo el trabajo al que se comprometieron en el sprint actual y no hay forma de que un desarrollador pueda ayudar a otro o probador, pueden plantear el problema en la próxima reunión diaria y solicitar traer nuevos trabajar.

Además, compartir los comentarios y las métricas de los clientes dentro del equipo ayuda a aclarar si es necesario o no un cambio en el producto en sí, los mensajes que lo rodean o el análisis de los datos. Tener una hoja de ruta y adherirse a ella es clave, pero esto solo funciona si todos conocen el plan y los cambios son bidireccionales:

Podemos agregar o cambiar tareas en el plan trimestral, pero esto se refleja como un aumento del alcance y un cambio explícito en el plan.

Referencias