Saltar al contenido

Blog técnico | Vivir en un mundo sin control de calidad

En nuestros equipos de desarrollo no hay gente dedicada al control de calidad. Tampoco tenemos un equipo dedicado de QA que esté separado del equipo de desarrollo. ¿Por qué hacemos eso? ¿Cómo funciona?

¿Sin control de calidad no hay pruebas?

¡Al contrario! No tener gente dedicada al control de calidad significa que las pruebas son responsabilidad de todo el equipo, no sólo de unos pocos miembros del equipo o de un equipo completamente separado. Esto obliga a todos en el equipo a pensar en cómo asegurar la calidad del código producido.

Blog técnico | Vivir en un mundo sin control de calidad
Blog técnico | Vivir en un mundo sin control de calidad

También se anima a los equipos a automatizar tanto como sea posible sus pruebas, siguiendo el modelo de la pirámide de pruebas. El desarrollo dirigido por pruebas es una gran manera de desarrollar estas pruebas automatizadas. Los equipos tendrán típicamente grandes suites de pruebas automatizadas en muchos niveles diferentes que se ejecutan cada vez que se cambia o se despliega el código. Los equipos a veces también probarán manualmente nuevas características localmente o en nuestro entorno de puesta en escena (y a veces también en nuestro entorno de producción cuando la característica está detrás de una palanca de características), pero la mayoría de las pruebas se realizan de forma automatizada.

¿Por qué no tener QA?

La falta de personal dedicado a la garantía de calidad en un equipo puede mitigarse haciendo que las pruebas sean responsabilidad de todo el equipo y disponiendo de conjuntos completos de pruebas automatizadas. ¿Pero no sería mejor si hiciéramos esas cosas y tuviéramos también gente dedicada al QA? Bueno, resulta que tener personas de QA separadas puede introducir algunos problemas significativos en la capacidad de un equipo para entregar el software de forma rápida y frecuente.

En nosotros practicamos el desarrollo de software ligero. Uno de los principios de lean es reducir el desperdicio. Un tipo de desperdicio que puede ocurrir es el trabajo no terminado que se acumula en las colas. Tener personas separadas de QA no garantiza que haya una cola con el trabajo inacabado de los desarrolladores, pero es algo que puede ocurrir fácilmente. Muchos de los desarrolladores en han experimentado esto en la práctica en otros lugares de empleo. Así que en lugar de intentar gestionar esa cola de trabajo y reducir la cantidad de residuos que puede generar, elegimos eliminarla completamente.

¿Funciona esto realmente?

Hasta ahora ha funcionado sorprendentemente bien. Nunca tenemos equipos de desarrollo esperando en QA para desplegar una nueva característica. A veces tenemos errores que tenemos que arreglar, pero tenemos un número lo suficientemente pequeño de los que los hacemos como parte de nuestro flujo de trabajo normal. No usamos una base de datos de seguimiento de errores separada para hacer un seguimiento de ellos. En 2017 nos desplegamos un poco más de 4200 veces a la producción a través de todos nuestros equipos. De todos esos despliegues, aproximadamente el 3% fueron retrocesos. No mantenemos estadísticas sobre la razón por la que varios despliegues fueron retrocedidos, así que es difícil saber cuáles de esos retrocesos se debieron a errores u otros impactos adversos en los clientes. En algunas situaciones este nivel de retrocesos podría no ser aceptable, pero en nuestra situación lo es.

Conclusión

Entonces, ¿cómo se siente en la práctica el no tener gente dedicada al control de calidad? Para mí, como desarrollador, se siente realmente bien. Significa que para las cosas en las que estoy trabajando no tengo que pasárselas a otra persona o grupo y esperar a que las procesen. Siento la responsabilidad no sólo de asegurarme de que escribo código de calidad, sino de tener una forma de probar que mi código hace lo que creo que debería. Significa que puedo implementar cosas en producción mucho más rápido y con mayor frecuencia, lo que significa que puedo obtener retroalimentación de los clientes reales más rápido y con mayor frecuencia.

Dicho esto, trabajar sin gente dedicada al control de calidad requiere algunas habilidades diferentes a las de trabajar con ellos. Y como cualquier otra habilidad, la habilidad de trabajar sin gente dedicada al control de calidad puede tomar tiempo para adquirirla y mejorarla.

Categorías: artesaníaTags: testing, lean