Primero algunos antecedentes:
Tenemos un equipo de ~18 desarrolladores que trabajan en varios proyectos grandes y pequeños (generalmente se divide en 3-5 equipos de scrum). Todos trabajamos en la misma base de código y nuestros sprints están alineados, más o menos 24 horas debido a desafíos de programación. Tenemos un código global congelado 8 días después de nuestro sprint de 2 semanas, después del cual hay un período de control de calidad de 1 semana. (Mientras tanto, el equipo de desarrollo pasa al siguiente sprint). Al final de las 3 semanas, lanzamos.
(Probablemente ya pueda ver una serie de problemas con este enfoque. Sin entrar en detalles, solo diré que ha sido una evolución impulsada por el negocio).
Para nosotros, el mayor desafío es la desconexión entre desarrollo y control de calidad durante el período de superposición. En resumen, cuando los equipos de desarrollo se lanzan a un nuevo sprint y el control de calidad verifica el sprint anterior, la planificación de la capacidad se vuelve muy difícil. Los desarrolladores se comprometen con una cantidad X de puntos en el nuevo sprint y luego se ven afectados por errores del sprint anterior. El nuevo sprint entonces sufre.
Lo que QUEREMOS hacer es pasar a un verdadero modelo de sprint de 2 semanas en el que todo el desarrollo y el control de calidad se realicen dentro del plazo de 2 semanas. Una vez más, muchas razones para hacer esto que no entraré aquí. Para nosotros se trata principalmente de calidad y trabajar hacia la integración continua (lanzaríamos cada 2 semanas en lugar de cada 3 semanas).
Solo quería ver si alguien tuvo que quitarse esta curita y qué tipo de desafíos encontraron en el camino.
Habiendo pasado por algo similar yo mismo, aquí hay algunas consideraciones. Intentaré no extenderme demasiado, pero hay algunos aspectos de Scrum que deben mencionarse.
Los equipos de desarrollo están estructurados y autorizados por la organización para organizar y gestionar su propio trabajo. La sinergia resultante optimiza la eficiencia y eficacia general del Equipo de Desarrollo. http://www.scrumguides.org/scrum-guide.html
Con eso en mente, me aseguraría (si aún no lo ha hecho) de mencionar los desafíos que tiene su proceso actual, revisar los principios de scrum y la razón por la que existen, y luego preguntarle al equipo de desarrollo qué se debe hacer para hacer esto. trabaja. Guíelos en la dirección correcta en lugar de decirles, y el equipo tendrá mucho más éxito. Como dije, es posible que ya lo estés haciendo de esa manera, pero vale la pena mencionarlo.
Si puede mostrar el éxito a través de su equipo empoderado haciendo mejoras, también lo ayudará a impulsar más cambios y aceptación en el lado comercial.
Scrum no reconoce títulos para los miembros del Equipo de Desarrollo que no sean Desarrollador, independientemente del trabajo que realice la persona; No hay excepciones para esta regla; http://www.scrumguides.org/scrum-guide.html
La razón de esto no es hacer las cosas más difíciles, sino garantizar que el equipo trabaje en conjunto hasta que hayan logrado el objetivo del sprint con su Definición de Terminado.
Mencionaste que los desarrolladores se comprometieron con el trabajo de sprint. Como parte de lo que dije anteriormente, asegúrese de que Dev y QA se comprometan con el trabajo de sprint . Están juntos en esto y necesitan apoyarse mutuamente por igual. El trabajo de control de calidad debe reflejarse en su estimación.
Nuevamente, mencione estas cosas en retrospectivas. Obtén ideas y comprométete con el equipo. Muestre mejoras en el negocio para que vean cómo es efectivo empoderar al equipo. A medida que realiza cambios, descubra qué funciona y qué no, y adáptese, sea ágil. Recuerde que Agile y Scrum son marcos destinados a brindarle formas de realizar grandes cambios rápidamente para lograr la mejor calidad de trabajo que satisfaga las necesidades de los clientes.
Como nota final, recuerde que Velocity no es para comparar el progreso del equipo entre sí, ni para informar a los ejecutivos por sí solo. Es determinar cuánto trabajo puede hacer el equipo en un sprint determinado.
Algunas sugerencias:
Automatice tanto como sea posible sus pruebas de regresión. Esto deja al control de calidad libre para centrarse en la nueva funcionalidad. Esto permite que el equipo pruebe a medida que avanza en un sprint, en lugar de esperar el final.
Piense detenidamente en la forma en que utiliza la numeración de versiones y los entornos. Por ejemplo, algunos equipos con los que he trabajado harán una caída en un entorno de control de calidad cada pocos días en un sprint. Cuando adopta este enfoque, es importante detectar errores en una versión determinada para que no haya confusión con el trabajo en curso.
Buscar la integración continua entre los equipos. No esperes al final del sprint para hacer esto. Aún mejor, combine la integración continua con la automatización de pruebas de regresión para obtener comentarios regulares sobre el código fusionado.
Además, planee con cuidado. Si desea realizar pruebas durante todo el sprint, debe tener historias pequeñas sin dependencias. Siempre tenga una conversación durante la planificación sobre lo que probará primero y qué tan rápido estará listo. Por ejemplo, un equipo podría apuntar a tener las primeras historias listas para probar después de 2 días del sprint. Si tiene una historia que será particularmente difícil de probar, entonces no tiene sentido comenzar a probar el último día del sprint. Busque abordarlo temprano en el sprint con tiempo suficiente para probar.
Finalmente, fomente la comunicación entre los miembros del equipo. Deje de pensar en las pruebas como una actividad de control de calidad. Es una actividad de equipo e involucra a todos (incluido el propietario del producto).
Obviamente, su primer obstáculo será conseguir la aceptación, tanto de la alta dirección como del equipo. Pero suponiendo que ya lo tengas...
Un problema con el que se puede encontrar es que el control de calidad no está suficientemente trabajado al comienzo de los sprints cuando no hay mucho que probar, mientras que los desarrolladores no están suficientemente trabajados hacia el final, cuando la mayoría de las historias están en control de calidad. Si bien la utilización del 100% es una falacia, tampoco es deseable una infrautilización severa.
Hay otras preguntas y respuestas sobre esto, pero la conclusión básica es tratar de encontrar tareas alternativas para llenar los horarios más ligeros. Idealmente, los desarrolladores deberían poder ayudar con las pruebas y el personal de control de calidad debería poder ayudar con el desarrollo. Por supuesto, en realidad, uno o ambos a menudo no son más que un sueño imposible.
Dicho esto, hay cosas que tanto los desarrolladores como el personal de control de calidad podrían hacer para ocupar su tiempo de manera productiva, incluidas, entre otras, las siguientes:
Además, vale la pena señalar: mencionó que actualmente tiene un calendario de lanzamiento trisemanal y se está moviendo hacia sprints de dos semanas. ¿Has considerado los sprints de tres semanas? Esto podría ser esencialmente lo mismo que está planeando, solo que sin estropear el patrón de programación de lanzamiento arraigado de su organización.
He encontrado algunos problemas similares en uno de mis proyectos. Al igual que el suyo, uno de mi equipo tuvo esfuerzos de prueba acumulados hacia el final del sprint. Cuando las historias estaban incompletas (es decir, no se realizaron pruebas en este caso), provocaba que las historias se trasladaran al siguiente sprint, se interrumpía el flujo, se retrasaba la entrega, se producían problemas de coordinación (entre control de calidad y desarrollo), caos, etc.
La forma en que salí de esto es desarrollando esta mentalidad : lo que comprometemos en un sprint TIENE que terminar dentro del sprint.
Pida al equipo que calcule y elija las historias que creen que pueden desarrollarse, probarse y estar listas para implementarse dentro del plazo de 2 semanas.
Es difícil hacer este cambio, pero los equipos mejoran a medida que practican esto algunos sprints. Para empezar, es posible que tenga negocios que se quejen de la entrega lenta, que el equipo no llegue a una conclusión fácilmente y mucho más. Pero hazlo suave y lentamente.
Factores indispensables en los que centrarse:
Espero que esto ayude.
Ha cometido un error crítico en su comprensión de cómo funcionará esto.
No pasará de un ciclo de lanzamiento de 3 semanas a 2 semanas. Está pasando de 3 semanas a 6 semanas.
Los problemas que experimenta con los desarrolladores que se comprometen con un sprint y el "ataque de errores" no se deben a una desconexión entre ellos y el control de calidad, sino a la adición de tareas a un sprint en curso.
Este problema solo se agravará si permite que el control de calidad agregue errores en el sprint actual en curso para que su ciclo sea:
S1: desarrollador de funciones con algunas funciones probadas.
S2: pruebe las funciones restantes y el desarrollador S1 informó errores.
S3: dev S2 informó errores. Control de calidad final y aprobación. Inicie las características de la rama de la próxima versión porque no queda suficiente trabajo de desarrollo
Un mejor enfoque es tener sprints de desarrollo y prueba compensados pero de igual duración y hacerlos 1 semana
Características de la versión 1 de desarrollo de S1
S2 prueba las características de S1, características de la versión de desarrollo 2 en una nueva rama
La versión de prueba 2 de S3 incluye errores informados por el desarrollador S2
Versión 1 al final de S3
S4 dev S3 informó errores
Versión 2 al final de S4
Si la prueba tiene 'tiempo de inactividad', deben usarlo para escribir las pruebas para el siguiente conjunto de funciones antes del desarrollo.