He estado leyendo la Guía Scrum de scrum.org y dice:
Los equipos de desarrollo no contienen sub-equipos dedicados a dominios particulares como pruebas o análisis de negocios.
En su traducción literal, esto significa que no hay evaluadores, lo cual es confuso. ¿Cómo pueden estar sugiriendo esto?
Respuestas:
Significa que:
Los probadores están integrados en el equipo de desarrollo, creando herramientas para ayudar a los desarrolladores a realizar pruebas y pruebas.
o:
El equipo practica Test Driven Development, es decir, escriben pruebas automatizadas que ejercitan el sistema.
Cualquiera de estos significa que no hay necesidad de un equipo de prueba por separado.
fuente
Sí, esto es exactamente lo que sugieren. En otras palabras, los desarrolladores son los probadores y los probadores son los desarrolladores.
La idea es fomentar la propiedad y la calidad del código .
Esto no significa que el código no se pruebe, sino que las personas involucradas en escribirlo son las que participan en la prueba; no hay separación de responsabilidades.
El problema que este enfoque está tratando de abordar es la separación demasiado común entre los desarrolladores y los evaluadores, donde los desarrolladores escribirán código y lo "arrojarán por la pared" al otro equipo y luego va y viene, retrasando el proyecto y produciendo software de baja calidad.
fuente
La parte fundamental de esto es que la responsabilidad del codificador es crear un código que funcione y cumpla con el requisito. Esto requiere una mentalidad particular: "El código que estoy escribiendo hace lo que se supone que debe hacer".
Mezclar las responsabilidades del codificador significa que ahora se requiere que el codificador ingrese a otras mentalidades para otras actividades, sin embargo, como codificador, es difícil que uno se divorcie completamente de esa mentalidad.
La responsabilidad del probador es encontrar errores y lugares donde la funcionalidad se desvía de la funcionalidad requerida. Esto requería la mentalidad de "El código está roto y descubriré cómo".
Del mismo modo, un analista de negocios está tratando de identificar los requisitos que el cliente realmente solicita. Esto requiere otra mentalidad de "la aplicación no funciona de esta manera, pero debería".
Para que un codificador trabaje en cualquiera de esas otras capacidades, existe una probabilidad razonable de que la mentalidad entre en conflicto y el codificador realice un rendimiento inferior al siguiente:
Esto no quiere decir que cada codificador sea susceptible a estos problemas (he conocido algunos tipos muy codificados / de control de calidad ... aunque no por el código que escribieron).
Esto se extiende también al equipo de desarrollo. La combinación de las responsabilidades y la mentalidad asociada de esas responsabilidades para un equipo de desarrollo compromete el producto final (el código).
fuente
Dice que no hay un equipo secundario dedicado a las pruebas. Eso no significa que no se realicen pruebas de ningún tipo. Solo significa que los miembros del equipo harán sus propias pruebas y, a menudo, probarán el código / características de otras personas. No estoy tan familiarizado con la metodología scrum, pero voy a decir que el cliente también puede estar involucrado en las pruebas.
fuente
Creo que esto en parte significa que se espera que escriba pruebas para su propio código para que sepa que funciona (si no, realmente no lo ha terminado) y en parte que es probable que a veces sea un probador del código de otras personas .
En lugar de permitir que las personas descarguen el trabajo de calidad del software en otra persona y lo ignoren, esto obliga a todos a pensar en el código que están escribiendo desde una perspectiva de calidad todo el tiempo, por lo que es una buena idea.
fuente
Esta declaración básicamente está tratando de evitar el trabajo en silos. Una parte de la solución a esto son prácticas como: Desarrollo impulsado por pruebas, Programación de pares, Solicitudes de extracción, Automatización de pruebas y similares que hacen que las pruebas sean una parte intrínseca del proceso de desarrollo en lugar de algo que se realiza de forma aislada 'después'.
Además, se habla muy poco sobre los roles en la Guía Scrum. De hecho, hablan sobre el equipo de desarrollo. Lo que quieren decir es que quieres un equipo fuerte y multifuncional. Esto significa que, dependiendo de lo que necesiten sus proyectos, necesita una variedad de habilidades, como UX, BA, QA / Tester, Ops, Coder, etc., etc.
Los equipos con los que trabajo ciertamente tienen un control de calidad como rol, ya que tenemos personas de DevOps. Pero todos ellos también son desarrolladores, solo con especialización en estas áreas. El truco realmente es no caer en los silos y trabajar de forma aislada.
fuente
No significa necesariamente que no haya evaluadores. Puede ser el caso de que un equipo Scrum tenga probadores dedicados o no.
Para mí, lo que significa esta afirmación sobre Scrum es que debes pensar en todo el proceso de entrega como un solo equipo. Ser parte del mismo equipo sugiere algunas cosas:
Si están trabajando juntos en un solo equipo, entonces el equipo tiene éxito juntos y falla juntos. He estado en un equipo Scrum muy exitoso que tenía varios evaluadores. Los evaluadores estuvieron presentes durante todas las paradas, sesiones de preparación, planificación, etc. Si no estaba claro cómo evaluar una historia, el equipo no se comprometería a ello. Siempre hablamos con nuestros evaluadores cuando estimamos.
Posibles signos de que realmente no trate a los evaluadores como parte del equipo de entrega, incluso si cree que lo hace:
Estos son subjetivos y no necesariamente incorrectos. Sin embargo, son banderas rojas, en mi opinión.
Dicho todo esto, es completamente posible tener un equipo Scrum sin nadie que tenga un rol designado de probador. Eso también puede funcionar bien. Especialmente si automatizas las pruebas. TDD también ayuda.
fuente