¿Puede el control de calidad probar las tareas en curso? ¿Cómo se informan los errores de las historias incompletas?

Recientemente me han trasladado a un nuevo equipo. Hay muchas prácticas que creo que no están en términos con la Guía de Scrum, pero por ahora quiero discutir dos prácticas extrañas.

  1. Mientras nosotros, los desarrolladores, trabajamos en las tareas, la gente de control de calidad comienza a probarlas en todos los escenarios que se les ocurran; luego agregan cualquier problema encontrado como errores. Cualquier persona en su sano juicio diría que esto está mal. Si cree que un desarrollador podría pasar por alto un caso o escenario, puede agregarlo en la descripción de la tarea o crear una subtarea.

Planteé este punto con los QA y Agile Coach y la respuesta fue que Scrum nos permite cambiar ciertas cosas a medida que aprendemos de la experiencia, por lo que hemos introducido esta cosa. Quiero saber si esta práctica es correcta o incorrecta. Realmente no puedo hacer nada práctico al respecto excepto plantear el tema en la Retrospectiva.


  1. La segunda pregunta es sobre la prueba de tareas completadas. Un desarrollador completa sus tareas, digamos 4 días antes del final del sprint. El control de calidad encuentra algo que falta en la implementación. ¿Debe informarse como un error o la tarea debe reasignarse a un desarrollador , con un comentario o edición en la descripción y volver al progreso?

En este momento, en nuestro equipo, si el control de calidad encuentra un problema con la tarea, mantienen las tareas en prueba, pero agregan un nuevo error como sub y se las asignan al desarrollador.

Mi pregunta es: ¿es correcto este enfoque? Por ejemplo, hay una tarea para cambiar el color de dos botones, uno ahora debería ser verde y el otro debería ser rojo. Un desarrollador trabaja en esta tarea, primero entiende la tarea. ¿Cómo deberían hacer esto, usar CSS o JavaScript (este es solo un ejemplo simple, así que tengan paciencia conmigo)? Cambian solo un botón, o se olvidan de cambiar otro botón, o cambian ambos, pero debido a una mala codificación, solo se cambia uno. Ahora, el desarrollador pasa esta tarea a prueba, el control de calidad prueba la tarea y descubre que solo se cambió un botón. Ahora, ¿debe enviarse el problema al desarrollador o debe informarse un error?

  • Si se devuelve el problema, el desarrollador ya sabe cómo cambiar el color, solucionará el problema, será rápido.
  • Si se informa un error y este se asigna a un desarrollador diferente, será una pérdida de tiempo. El nuevo desarrollador tendrá que ver cómo hacer mejor la tarea. Un punto y coma faltante podría ser la razón.

Ahora mi pregunta es: ¿cuál es el mejor enfoque para los dos casos anteriores?

Respuestas (2)

El equipo de desarrollo debe tener todas las habilidades necesarias para convertir los elementos pendientes en incrementos de software funcional. Para que eso sea cierto, deben tener las habilidades para completar todas las pruebas en el equipo durante el Sprint.

El control de calidad separado no tiene sentido si su equipo de desarrollo crea software que funcione. Parece que hay una brecha en su equipo donde debería estar la prueba. Hablaría de esto en la retrospectiva e intentaría explorar por qué existe una dinámica de "nosotros contra ellos" entre el equipo de desarrollo y los individuos de control de calidad.

Algunas guías:

  1. Equipo multifuncional : no debe haber subequipos, solo un grupo de personas, con todas las habilidades necesarias, responsables de crear software que funcione.
  2. Los elementos pendientes deben ser mínimos pero suficientes : si hay suficiente información, es menos probable que haya sorpresas. Esperaría que los casos de prueba se definan como parte del proceso de Refinamiento. También esperaría que un Equipo de Desarrollo esté facultado para rechazar elementos en la Planificación de Sprint si no son suficientes.
  3. En errores de sprint : los problemas encontrados dentro del sprint deben ser una conversación entre los miembros del equipo de desarrollo y resolverse de inmediato. Si el problema pondrá en peligro el Sprint Goal, entonces podría ser necesaria una conversación con el PO.
  4. Errores fuera del Sprint : si encuentra problemas en el resultado del Sprint, debe crear un error y rastrearlo, luego discutirlo y buscar la raíz en la Retrospectiva del Sprint.
  5. problemas identificados externamente : cualquier trabajo identificado por un equipo, grupo o individuo fuera del equipo de desarrollo debe tener ese trabajo ordenado y priorizado por el propietario del producto. Cualquier trabajo nuevo que ingrese al Sprint le está costando dinero al propietario del producto y puede no ser tan valioso para el negocio como otra cosa.

Preguntas para tu retro:

  1. ¿Por qué hay una sensación de nosotros contra ellos entre el desarrollo y la prueba?
  2. ¿Por qué el equipo de control de calidad genera errores en el trabajo de sprint cuando una conversación sería mejor?
  3. ¿Por qué hay un equipo de control de calidad?
  4. ¿Es nuestra definición de hecho suficiente?
  5. ¿Por qué QA agrega trabajo directamente al Sprint?
MrHinsh da una gran respuesta aquí. Considere la posibilidad de construir un experimento que mida la tasa y el costo de reelaboración de los elementos de la Lista de Producto en un Sprint si estos defectos adicionales simplemente se manejan a través de una conversación o algún otro método cara a cara. Mi hipótesis es que puede ver menos reelaboración y pasar menos tiempo escribiendo PBI defectuosos, y que su Product Backlog comunicará mucho más claramente el valor que está liberando al mercado.

Primero, no existe una forma correcta de probar en Scrum, solo existe la forma que funciona para el equipo. Scrum no describe ninguna práctica cuando se trata de pruebas. Si cree que el camino no funciona, discútalo durante la retrospectiva.

Para responder a sus preguntas desde mi perspectiva como probador Agile:

  1. La prueba en paralelo es buena, la creación de informes de errores no lo es. Como probador, crearía pruebas automatizadas para cubrir estos nuevos requisitos para que un desarrollador pueda implementarlos. Discutiría los hallazgos con el equipo y el propietario del producto. Los cambios de alcance deben ir a la cartera de pedidos. Defectos en la funcionalidad existente como tareas en el Scrumboard, pero preferiría una prueba automatizada.

  2. En Scrum nunca asignas a un desarrollador, ya que es un sistema de extracción, el equipo extrae de la quietud para completar el trabajo para cumplir con el objetivo de Sprint. Cualquier desarrollador puede detectar los defectos si lo desea. Usaría una pizarra física y pondría un post-it con el problema en la pizarra. Informar sobre un defecto en un rastreador de defectos parece una pérdida de tiempo, ya que prefiero discutir el problema primero con el equipo y el propietario del producto.

  3. Evite el ping-pong de QA<->DEV, permita que los evaluadores programen en pareja con los desarrolladores y asegúrese de que el retrabajo sea perfecto después de la primera vez. Esto podría ser algo para probar si esto sucede mucho.

Scrum es un enfoque de equipo, hablar con el equipo, resolver problemas con el equipo. Deje de pensar en un solo desarrollador.

Lea sobre el enjambre:

Creo que tu tercera viñeta es subestimada. El control de calidad puede ocurrir en paralelo si se emparejan con los desarrolladores.