He escuchado a enjambre mencionado en el contexto de la programación ágil o extrema. Parece ser un complemento para el emparejamiento.
¿Qué es exactamente? ¿Cuándo se debe aplicar? ¿Cómo lo haces bien?
He escuchado a enjambre mencionado en el contexto de la programación ágil o extrema. Parece ser un complemento para el emparejamiento.
¿Qué es exactamente? ¿Cuándo se debe aplicar? ¿Cómo lo haces bien?
La idea es que todos los miembros de su equipo trabajen en la misma historia al mismo tiempo. En lugar de que todos se centren en tareas diferentes, todos se enfocan en una tarea a la vez hasta que se completa. Luego pasan a la siguiente cosa, donde todos trabajan juntos en ello.
Esto ayuda a los equipos que luchan por completar historias antes del final del sprint. A menudo los equipos terminan el 80% de todas las historias, pero ninguna está completa. Esto es menos útil que terminar por completo el 80% de las historias, ya que las historias no terminadas no tienen (efectivamente) valor para el usuario final. Es más fácil completar las historias cuando todos los miembros del equipo se centran en una historia a la vez. Esta es la motivación detrás del enjambre.
Hay algunas dificultades aquí. Por ejemplo, el control de calidad no siempre puede probar las cosas antes de que se construyan (o incluso se diseñen). En este caso, debe establecer un diseño en conjunto desde el principio, y luego QA puede escribir (inicialmente fallando) pruebas contra el diseño y no con la implementación real.
Swarming simplemente se refiere al hecho de que varias personas trabajan juntas para completar una tarea o historia. En mi experiencia, esto no es algo que haces a menudo.
Normalmente, cada miembro de mi equipo trabaja en una tarea diferente y / o una historia diferente. Si alguien se está quedando atrás, o si hay un deseo de terminar una tarea o historia antes, otras personas dejarán de trabajar en otras tareas y se "enjambrarán" para completar la tarea, lo que significa que todos trabajarán juntos en una sola tarea o historia hasta que se completa.
Hace poco tuvimos un pequeño número de historias que fueron un trabajo bastante aburrido y poco interesante. Le di al equipo un pequeño incentivo (pizza) y una fecha límite (al final del día) para terminar el trabajo, así que enjambraron la historia y eliminaron al menos un par de días de trabajo en una tarde. Terminaron el trabajo y se retiraron antes de tiempo, luego cada miembro del equipo volvió a lo que estaba trabajando. Obtuvieron un almuerzo gratis, hice el trabajo temprano que podría haberse prolongado debido a su naturaleza aburrida, y el equipo se adelantó a su carrera. Ganar ganar ganar.
"Swarming" no es más que un término elegante para "hey, déjanos ayudarte con eso".
Enjambre es en realidad un concepto central para la agilidad. No es algo que se hace "cuando hay problemas". El enjambre, en su forma más simple, significa que los equipos trabajan en colaboración en artículos (historias) y los completan. El concepto central es "dejar de comenzar y comenzar a terminar". En otras palabras, en lugar de que cada desarrollador trabaje de forma independiente en una historia, el equipo se enfoca en un conjunto más limitado de historias / tareas y realiza cada elemento antes. Piense en ello como la diferencia entre un sistema de un solo hilo y varios hilos. Si una historia de usuario tiene 10 tareas que deben realizarse, y cada una es de 8 horas, suponiendo que no hubo complicaciones, un desarrollador podría trabajar cada tarea de forma secuencial y completar la historia en 80 horas, o aproximadamente dos semanas (se le dará un sprint de 10 días). de 8 horas dev por día). ¿Qué pasa si dos desarrolladores dividen las tareas y las trabajan simultáneamente? Las mismas 80 horas de trabajo se pueden completar de esta manera en una semana. Agregue un tercero, y puede ver que ahora se puede hacer en 3 a 4 días.
El enjambre se puede hacer de varias maneras:
Los equipos que brindan una historia a cada desarrollador tienden a tener demasiado "trabajo en progreso" o WIP, y con frecuencia muchas historias comienzan pero no se hacen. Este es un ANTI-PATTERN, y NO son las mejores prácticas.
Los equipos que enjambran tienden a tener menos WIP y completar más historias, y al hacerlo, me refiero a Desarrollado, Probado, Aprobado, listo para desplegar. Por lo tanto, esta es una práctica que es el núcleo de la agilidad.
El siguiente artículo en InfoQ describe un enfoque para el enjambre:
Lea el artículo para la explicación detallada.
Lea otras preguntas en las etiquetas agile terminology