Esta es la segunda parte del post sobre «Mi personal y particular historia con las métricas de calidad software. Y saca de aquí lo que pueda valerte (1/2)»
Para ello, para lograr un cuadro de mando de calidad, me base en un estándar, por aquel entonces apenas conocido, y teórico, llamado ISO 9126 (te dejo un enlace, porque ya hablamos por aquí de él).
El estándar definía un árbol, que desglosaba qué era la calidad del producto software, descomponía esta en varias dimensiones de menor nivel, p.e., calidad -> mantenibilidad -> cambiabilidad + analizabilidad, etc. Pero de ahí para abajo, nada, las métricas que soportaban las hojas del árbol no estaban definidas.
Sería porque era era necesario, por inspiración, o porque un importante cliente nos pidió un cuadro de mando de calidad «para mañana»… y nadie daba respuesta de cómo hacerlo, que yo tome las dimensiones del árbol de la 9126 y les asocié métricas. Por ejemplo, a la mantenibilidad, le asocié complejidad ciclomática, código repetido, clases muy grandes, muchos operadores en un servicio, etc. Métricas que podía obtener con herramientas.
El problema fue la calibración: desde los resultados de todas las métricas debía obtener un único número, por ejemplo, el número de mantenibilidad. Y las métricas cada una se mueve en un rango, unas de – 1 a 1, otras de 0 a infinito, etc., por lo que hacer una media no era la solución. Y para ello las calibré con trapecios.
Los trapecios, como el de la figura, que implementé con funciones por partes (otra cosa que tenía olvidada de la carrera que volvió a la vida en esos tiempos) tenían en el eje de las X el valor de la métrica, el rango en que se mueve, y en el de las Y la calibración de 0 a 100, siendo 0 la menos calidad y 100 la máxima. Y son trapecios porque las métricas no siempre se comportan de manera lineal. Por ejemplo, imagina el % de comentarios en una clase, si el porcentaje es cero es baja calidad, si es un 10% ya pinta mejor, pero si es un 90% suena a código comentado, así que mal.
Aquellos cuadros de mando en base a trapecios (que es como lo hacen hoy casi todas las herramientas comerciales que tienen cuadros de mando de la calidad) se implantaron en numerosos proyectos. Si bien a fecha de hoy son muchas las herramientas que ya vienen con cuadros de mando.
Desde entonces, y a fecha de hoy, junto con la agilidad y la gestión de proyectos, la calidad del producto software ha sido una de mis dedicaciones. Que he visto crecer en las empresas, lentamente, pero sin parar, y a la que aún le queda mucho recorrido, pero que juega, y jugará, un papel principal en los modelos de negocio tecnológicos a los que vamos.
- Debes crear apps sin saber programar (no hay que saber nada) + Crea Test con IA + Scrum es el nuevo Excel - 12 septiembre, 2024
- Las 6 técnicas prompting + 1ª Ley del Manager Oscuro + Mantenlo sencillo, estúpido - 5 septiembre, 2024
- Guía de Métricas Ágiles (versión agosto 2024) - 22 agosto, 2024
¿Tienes información de indicadores de productividad para proyectos de sw?