La evolución del QA (Segúnda Parte)

Lee la primera parte haciendo click AQUÍ 

¿Realizar pruebas es suficiente para asegurar la calidad de un producto? claramente no. Anteriormente comentamos cómo partió la evolución del QA y ahora seguimos. 

A razón de esto, se han ideado diferentes metodologías o técnicas para minimizar los riesgos mediante la detección temprana de errores; pruebas unitarias, prueba de humo, validación cruzada, ATDD, BDD, etc. El problema, es que la aplicación y el buen uso de estas técnicas o metodologías son dependientes de la misma mano con la que se desarrolla el software, o construye las historias de usuario, o redacta los criterios de aceptación (por poner algunos ejemplos), es decir, a grandes rasgos funcionan como autochecks de calidad. 

Este problema ha sido abordado en propuestas de normas como la ISO 9126 o la SQAE (Software Quality Assessment Exercise) que presentan indicaciones basadas en la implementación de los modelos de calidad propuestos, los cuales deben ser ejecutados por un tercero (se refiere a alguien diferente a quien crea la definición, los criterios, reglas de negocio e incluso el desarrollo), en palabras más simples y resumiendo lo expuesto por Callejas, Alarcón y Álvarez en su publicación Modelos de calidad del software, un estado del arte” (2017), el aseguramiento de calidad requiere una revisión de terceros para ser realmente efectivo, evitando sesgos y otras casuísticas propias de la autorevisión de las labores ejecutadas en la planificación y el desarrollo, esto no implica que el ingeniero de calidad sea el responsable de ejecutar o construirlas, si no, de medir su eficacia relacionando datos cuantitativos o métricas de calidad.

Es aquí donde una reformulación del concepto de Quality Assurance se vuelve trascendental como parte de una estrategia donde la piedra angular del éxito de los proyectos de software (de cualquier tamaño) depende de la calidad de los mismos, y no bajo la limitación del entendimiento de calidad como un conjunto de parcelas aisladas en un proceso de delivery, más bien como flujo ininterrumpido de interacción entre cada parte del mismo, en este sentido, quien está en una posición privilegiada para la gestión de la calidad somos precisamente los ingenieros de calidad, quienes ejecutamos el Quality Assurance. Quienes estamos involucrados en la calidad del software tenemos una oportunidad de avanzar en una nueva forma del arte, donde el aseguramiento de la calidad ya no reside únicamente en una persona que realiza la mayor cantidad de pruebas posibles, sino además, en un proceso continuo, guiado, retroalimentado y de entrega constante de valor que cuente con la mayor cantidad posible de información sobre el Que hace, Cómo lo hace y cuándo lo hace de un software. 

En Hakalab hemos comprobado mediante la experiencia cómo impactan positivamente en el producto final y en la experiencia del cliente aspectos como la inclusión de técnicas de calidad desde la planificación inicial, por ejemplo; en la escritura de criterios de aceptación, los beneficios de impulsar a los equipos a realizar pruebas unitarias o pruebas de humo, validaciones preliminares de UX (rápidas), pruebas automatizadas adaptables y reutilizables, feedback constante con el negocio, identificación de bugs categorizados con finalidad de buscar mejoras continuas de calidad en los procesos de desarrollo,  documentación viva del estado del proyecto como mecanismo de reflexión del equipo y de los equipos interconectados, entre otros factores que emergen del proceso completo de calidad transversal en la creación de software.

Entendemos la gestión de la calidad en los equipos como el continuo donde el Quality assurance tradicional va un paso más allá, o al siguiente nivel si se plantea en términos más objetivos, donde el límite no es solo automatizar y ejecutar sin errores un plan de pruebas, más bien, el objetivo es sembrar calidad desde el hito 0 de un proyecto, cuyas pruebas exitosas resultan ser la confirmación de una eficaz gestión de calidad que deriva en una entrega de valor real tanto para el usuario final, como para el equipo mediante el aprendizaje y refinamiento continuo de la calidad.