Cómo gestionar la acumulación de productos / historias de usuarios

8

Estamos a punto de comenzar un nuevo proyecto usando Agile (usando TFS), y tengo un par de preguntas de "buenas prácticas" con respecto a la acumulación de productos:

Cuando comenzamos a agregar historias de usuarios, ¿es una buena idea ponerlas (por ejemplo) en una iteración de "Backlog", o simplemente dejar su iteración en blanco? Obviamente, cuando llegue el momento de comenzar a trabajar en los EE. UU., Se trasladará a la acumulación de iteraciones adecuada.

Al dividir una epopeya en EE. UU. Más pequeños, ¿simplemente cerraría la epopeya original, ya que ya no es necesaria? ¿O debería crear los nuevos Estados Unidos como hijos de la épica? (es responsabilidad de alguien cerrar la epopeya una vez que se hayan completado todos los niños estadounidenses).

Por último, ¿la lista de tareas pendientes del producto debe incluir todos los EE. UU. Independientemente de su estado, o solo aquellos que no se hayan iniciado (es decir, en mi iteración de "Lista de tareas" propuesta)?

Me doy cuenta de que estas preguntas no son de vida o muerte, pero sería bueno saber cómo otras personas manejan los atrasos de sus productos para que podamos organizar las cosas correctamente desde el principio.

Andrew Stephens
fuente

Respuestas:

6

No estoy familiarizado con TFS (¿es una herramienta de software?) Pero puedo darle algunas respuestas basadas en Schwarber.


1. Contenedores de historia

Solo hay dos contenedores de historias en las que deberías estar pensando, la acumulación de productos y la acumulación de Sprint. Las herramientas de software para el seguimiento de scrum pueden permitirle mantener los atrasos antiguos de sprint para el análisis histórico y eso está bien, pero debe cerrar un viejo trabajo pendiente de sprint (es decir, asegurarse de que todo esté terminado o eliminado) antes de realizar cualquier trabajo en el siguiente reserva de sprint.

A veces hay una tendencia a crear la acumulación del siguiente sprint en una herramienta de software mientras todavía está en el sprint actual. No hagas esto. Si ese retraso acumulado en el futuro está ahí, la gente tratará de incluir historias. Esto interrumpe el proceso de planificación adecuado, aumenta las tensiones y confunde los problemas de programación.

Si no logra mantener los límites adecuados entre sus sprints, entonces, en esencia, está ejecutando múltiples sprints similares. Eres multitarea. Como mínimo, la sobrecarga del cambio de tareas lo retrasará; La investigación indica que un cambio de contexto completo en humanos, del rompecabezas A al rompecabezas B, lleva 15 minutos. Mi experiencia sugiere que este arrastre puede ser el 50% o más de su productividad.

2. Epics

Mantén tus epopeyas alrededor. Alguien solicitó esta función, probablemente regresarán y querrán saber el estado de la epopeya. Esa persona, departamento o cliente estará pensando en la "historia" que presentaron, ahora promovida a épica. No pensarán en las historias más pequeñas involucradas y es posible que ni siquiera reconozcan que la historia de Foo está relacionada con su solicitud. La epopeya es un manejo conveniente para la comunicación entre el desarrollo y el cliente.

Dado que las epopeyas en realidad no se trabajan en sí mismas, solo en las historias asociadas, las epopeyas se mueven directamente de la cartera de pedidos de su producto a su pila terminada.

3. ¿A dónde van las historias?

Una historia solo debe estar en un contenedor a la vez. Debe comenzar en la cartera de pedidos del producto, pasar a una pila de Sprint y luego finalizar. Si alguien viene a buscar su historia en la cartera de pedidos del producto y no la encuentra, eso significa que está en proceso o finalizada.

4. Reflexiones finales sobre la gestión de un profundo backlog

El orden de clasificación forzada deja de tener sentido cuando tiene cientos de elementos en la cartera de pedidos de su producto. Claro, la forma en que organiza los artículos 20-70 puede ser bastante significativa, pero ¿a quién le importa si el # 300 está antes o después del # 301?

Una posible solución a esto es tener múltiples atrasos de subcomponentes que se alimentan a un atraso principal del producto. Por ejemplo, puede tener UI, DB, Backend, API, Infraestructura y Deuda técnica como sus subcomponentes. La acumulación de cada componente puede delegarse a una persona diferente para la administración. Una reunión periódica tendría que decidir qué historias pasar a la cartera de pedidos principal del producto. Para mantener un equilibrio adecuado de historias en la cartera de pedidos de su producto, es mejor decidir a priori una guía (no una regla) para las proporciones de historias que se promocionan a la cartera de pedidos principal. ¿Una historia de API por cada dos historias de UI? ¿Cuántas historias puede sacar de la Deuda técnica en comparación con la cantidad de historias de backend que necesita tomar?

Este sistema agrega una complejidad considerable y requiere mucha coordinación adicional. Solo debe llevarse a cabo cuando la cartera de pedidos del producto crece tanto que el propietario del producto no puede pensar en todas las historias a la vez.

David Paigen
fuente
5

Una iteración en Agile no es tanto un contenedor para las historias de los usuarios, sino una versión de software en miniatura que sigue al SDLC durante un período de tiempo pequeño y fácilmente manejable.

El Backlog no es una iteración, es esencialmente un contenedor de historias de usuarios, epopeyas y tareas que actualmente no tiene el tiempo para abordar en el sprint actual. Al planificar con anticipación para el próximo sprint, debe volver a evaluar las prioridades actuales de los elementos en la cartera de pedidos, en comparación con el nivel de esfuerzo para entregar cada uno en la determinación de lo que pertenece o no en la próxima iteración.

No planifique más de una iteración por adelantado

Esto no es ágil y derrota el propósito completo del desarrollo iterativo en su totalidad. Por lo general, las necesidades y requisitos comerciales son demasiado volátiles para hacer planes a largo plazo sobre requisitos estrictos de software, por lo que mantenemos nuestros centros enfocados solo en la iteración actual y en la que trabajaremos tan pronto como entreguemos esta iteración.

Si la gerencia desea estimaciones a largo plazo (basadas en la cartera de pedidos actual tal como existe en este momento), se puede ver el tamaño de los elementos de la cartera de pedidos actual para dar una fecha estimada de finalización.

Su pregunta sobre en qué iteración incluir las historias de atraso me dice que probablemente esté tratando de planificar sus iteraciones con demasiada anticipación.

Al dividir una epopeya en EE. UU. Más pequeños, ¿simplemente cerraría la epopeya original, ya que ya no es necesaria? ¿O debería crear los nuevos Estados Unidos como hijos de la épica? (es responsabilidad de alguien cerrar la epopeya una vez que se hayan completado todos los niños estadounidenses).

Se debe aceptar una epopeya cuando logra satisfactoriamente su objetivo comercial declarado. Esto es esencialmente cuando todas sus historias de usuario secundarias se han completado y aceptado.

maple_shaft
fuente
Creo que cierta confusión se debe a la forma en que TFS almacena e informa sobre artefactos. No tiene el concepto de una acumulación de productos como tal: cuando le pide que muestre el PB, simplemente enumera todos los EE. UU. Que no están cerrados, independientemente de la iteración (si la hay) en la que se encuentren. En mi pregunta original estaba pensando que al ponerlos en una iteración falsa llamada "Backlog", dejaría en claro a todos que Estados Unidos aún no se ha iniciado, aunque en retrospectiva esto no es diferente a crear un Estados Unidos y simplemente dejar su iteración en blanco.
Andrew Stephens
2
@AndrewStephens Supongo que su problema es que los informes predeterminados integrados en TFS lo están perjudicando. Sin embargo, esto se puede remediar fácilmente porque, si no recuerdo mal, es bastante fácil escribir informes personalizados para TFS. En lo que respecta a la cartera de pedidos, la mayoría del software de PM tratará cualquier historia de usuario no programada como reserva. Quizás pueda modificar el informe para mostrarlos como tales.
maple_shaft