Por F. Borja Peñuelas Fort, Optimyth Software Consultor especialista
Este artículo describe el enfoque, que Optimyth Software ofrece a los directores y departamentos de TI, para el gobierno del SQA en sus organizaciones. Este planteamiento habilita un soporte al SQA a lo largo de todo el ciclo de vida de desarrollo de software, dotándole de herramientas de control de la calidad eficaces y de un cuadro de mando integral, que siguiendo los modelos de buenas prácticas de la industria más comunes hoy en día, muestra métricas e indicadores de SQA en los proyectos de desarrollo de sus aplicaciones nuevas y de las ya existentes, garantizando una solución bien dimensionada, viable, contrastada y sobre todo rentable, lo que la hace de gran utilidad, como referencia para la Gestión del Portfolio de sus Aplicaciones.
Houston, tenemos un problema…
Partamos de una situación que podemos denominar típica en el día a día de la organización TI de una gran o mediana corporación: La puesta en producción de una nueva versión de un sistema, que incluye módulos heredados de versiones anteriores, los cuáles, han tenido defectos previamente detectados, reparados, y que se vuelven a poner en producción en la nueva versión, que de pronto, y en un momento crítico, fallan, generando diversas alertas indicativas de la aparición de uno o más problemas o incidentes, que se resuelven… como se puede. Ya seamos productores (desarrolladores) o receptores (usuarios) de aplicaciones software, ante estas situaciones nos preguntamos ¿Cómo detectarlas con anticipación? ¿Cómo resolverlas eficazmente? ¿Cómo prevenirlas? Asegurar la Calidad de los sistemas software es la mejor manera de lograr una prevención de defectos eficaz. Quizás no sea una tarea que dote de valor al software desde la perspectiva del negocio, pero lo que sí está claro, es que un Aseguramiento de la Calidad deficiente, reduce el valor para el negocio que aportan las soluciones software, en un contexto altamente tecnológico, como es el actual.
La mejor manera de abordar la prevención de incidencias y problemas en el software es la detección temprana, a lo largo de las diferentes fases del ciclo de vida, mediante la monitorización de la calidad de los productos entregables, pudiendo alimentar un cuadro de mando automatizado, que muestre la evolución en el tiempo de un conjunto significativo de indicadores de la calidad del software (por ejemplo, acordes al estándar ISO/IEC 9126 (2002) “Software Engineering- Product Quality”) conseguida en cada fase, para todos los proyectos y aplicaciones software. Para ello es necesario integrar la información residente en diferentes herramientas de soporte (comerciales o de código abierto) sobre requisitos, artefactos de análisis y diseño, repositorios de código fuente, planes de prueba y pruebas automáticas, defectos e incidencias, de forma que se pueda, en base a unos objetivos de medición establecidos, medir su calidad y lo que es más interesante, combinar dichas métricas (de tan diferente procedencia y de gran heterogeneidad) formando un Modelo de Calidad que pueda ver reflejado, en un cuadro de mando de SQA, cada indicador establecido y su evolución en el tiempo.
Con este planteamiento holístico se consigue mejorar la calidad y la visibilidad del desarrollo del software de manera activa durante el análisis, el diseño, la construcción y ejecución de las pruebas, estableciendo controles de validación en cada fase que faciliten la comparación y la identificación de tendencias y reduzcan el riesgo de que el software que finalmente se entregue incumpla una normativa preestablecida y tenga una calidad deficiente.
Calidad rentabilizada
Un proceso SQA lo más automatizado posible es una herramienta de gobierno, muy eficaz como soporte a la Gestión del Portfolio de Aplicaciones y de Proyectos, que permite obtener entre otros beneficios, un mejor alineamiento de las aplicaciones con las estrategias del negocio, la optimización del retorno de la inversión en las aplicaciones e infraestructura, una mejora de la calidad y la eficacia de las aplicaciones y una disminución del flujo de llamadas al Service Desk, logrando un incremento de la satisfacción de los usuarios y contribuyendo al negocio sin que merme el valor aportado por los aplicativos.