
Visualiza la calidad del software con JIRA, Sheets y Looker
19 de marzo de 2025
Introducción
En el mundo del desarrollo de software, la calidad es un factor crítico. Para medir y mejorar la calidad, se utilizan métricas como el DDE (Eficacia de la detección de defectos), DRE (Eficacia de la eliminación de defectos) y DAA (Edad Media del defecto).
En este artículo, veremos cómo medir estas métricas extrayendo datos desde JIRA Cloud, los analizaremos con Google Sheets y por último, los visualizaremos dinámicamente en Looker Studio para comprender su evolución a lo largo del tiempo.
Paso 1: Crear una hoja de cálculo de Google
Google Sheets nos permite organizar, analizar y transformar datos. Por ello, el primer paso para configurar nuestro sistema de almacenamiento de métricas será crear una hoja de cálculo con varias pestañas. En estas pestañas almacenaremos el listado de incidencias detectadas por entorno. En este caso, tendremos tres pestañas:
-
BUGs_Preprod: incidencias de preproducción
-
BUGs_US: incidencias durante la fase de desarrollo
-
BUGs_Prod: incidencias de producción
Una vez tengamos estas pestañas creadas, añadiremos otra más, DataStudio. En esta nueva pestaña almacenaremos las métricas calculadas a partir de los datos de las otras pestañas, las cuales posteriormente serán visualizadas en Looker Studio.
Paso 2: Recopilar datos de JIRA Cloud
Usamos JIRA Cloud como herramienta para el seguimiento de proyectos y problemas y en ella se almacenan una gran cantidad de datos valiosos relacionados con el ciclo de vida de los defectos. Tenemos varias opciones para acceder a esta información, exportar datos a CSV, utilizar la API de JIRA, extensión de JIRA cloud for sheets,... nosotros nos centraremos en esta última.
Para usar la extensión de JIRA cloud for sheets tenemos que asegurarnos de:
1- Tener la extensión disponible en nuestro entorno de Google Sheet, para ello vamos a Extensiones ⇒ JIRA Cloud for sheets ⇒ Open…
2- Es necesario que dicha extensión esté conectada a JIRA Cloud, con el que vamos a trabajar.
Una vez tengamos esto listo, procederemos a extraer los datos que nos resulten interesantes mediante consultas JQL (Jira Query Language) que es la forma más potente y flexible de buscar en Jira.
Para ello, nos iremos a una de las pestañas que hemos creado anteriormente, por ejemplo BUGs_Preprod, y abriremos la extensión. En la extensión nos aparecerán 3 pestañas:
-
Issues: será dónde indiquemos la consulta JQL para la obtención de los datos que queremos.
-
Fields: indicaremos qué campos/columnas queremos tener en nuestro listado.
-
Schedule: cada cuánto tiempo queremos se ejecute la obtención de issues.
Después de configurar estas pestañas, pulsaremos sobre el botón Get issues now que aparece en la parte inferior de la extensión, se empezarán a extraer los datos de JIRA Cloud y se almacenarán en las diferentes pestañas (esta operación hay que repetirla en cada una de las pestañas) con la información correspondiente en función de la consulta JQL.
Paso 3: Calcular métricas en Google Sheets
Ahora comenzaremos a trabajar en la pestaña de DataStudio que creamos anteriormente.
En ella, tendremos las siguientes columnas:
-
Mes: una fila por cada uno de los meses del año.
-
Fecha inicial: una fila con el primer día del mes con el formato dd/mm/yyyy
-
Fecha final: una fila con último día del mes con el formato dd/mm/yyyy
-
Defectos encontrados antes de Prod: se contarán los defectos encontrados antes de producción entre la fecha inicial y final (ambos inclusive).
-
Defectos encontrados en Prod: se contarán los defectos encontrados en producción entre la fecha inicial y final (ambos inclusive).
-
Total de defectos: es la suma de todos los defectos encontrados entre la fecha inicial y final.
-
DDE (Eficacia de la detección de defectos): es el número de defectos encontrados antes de producción dividido por el total de defectos identificados entre fecha inicial y final.
-
Defectos solucionados: es la suma de los defectos creados y solucionados entre las fecha inicial y final y cuyo estado en JIRA es finalizado.
-
DRE (Eficacia de la eliminación de defectos): es el número de defectos creados y resueltos entre la fecha inicial y final dividido por el total de defectos identificados entre fecha inicial y final.
-
DAA (Edad Media del defecto) - Pre: es la edad de todos los defectos de preproducción (fecha de resolución menos fecha de creación) dividido entre el total de defectos identificados.
-
DAA (Edad Media del defecto) - Prod: es la edad de todos los defectos de producción (fecha de resolución menos fecha de creación) dividido entre el total de defectos identificados.
-
DAA (Edad Media del defecto) - US: es la edad de todos los defectos de US (fecha de resolución menos fecha de creación) dividido entre el total de defectos identificados.
Aquí encontrarás una plantilla que incluye las fórmulas que detallaremos a continuación. Además, proporcionamos el script de Apps Script necesario para el cálculo de una de estas fórmulas.
Defectos encontrados antes de Producción
\=COUNTIFS(BUGs\_Preprod!$D$2:$D;">="&B5;BUGs\_Preprod!$D$2:$D;"<"&B6)+COUNTIFS(BUGs\_US!$D$2:$D;">="&B5;BUGs\_US!$D$2:$D;"<"&B6)
dónde:
-
BUGs_Preprod!$D$2:$D ⇒ es la columna donde aparece la fecha de creación del defecto de la pestaña BUGs_Preprod
-
BUGs_US!$D$2:$D ⇒ es la columna donde aparece la fecha de creación del defecto de la pestaña BUGs_US
-
&B5 ⇒ es la fecha inicial
-
&B6 ⇒ es la fecha final
Defectos encontrados en Producción
\=COUNTIFS(BUGs\_Prod!$D$2:$D;">="&B5;BUGs\_Prod!$D$2:$D;"<"&B6)
dónde:
-
BUGs_Prod!$D$2:$D ⇒ es la columna donde aparece la fecha de creación del defecto de la pestaña BUGs_Prod
-
&B5 ⇒ es la fecha inicial
-
&B6 ⇒ es la fecha final
Total de defectos
\=IF(AND(D5\="";E5\="");"";D5+E5)
dónde:
-
D5 ⇒ son los defectos encontrados antes de producción
-
E5 ⇒ son los defectos encontrados en producción
DDE
\=IF(F5\="";"";IF(F5\=0;1;IF(D5/F5\>1;1;D5/F5)))
dónde:
-
F5 ⇒ es el total de defectos encontrados
-
D5 ⇒ son los defectos encontrados antes de producción
Defectos solucionados
\=COUNTIFS(BUGs\_Preprod!$D$2:$D;">="&B5;BUGs\_Preprod!$D$2:$D;"<"&B6;BUGs\_Preprod!$E$2:$E;">="&B5;BUGs\_Preprod!$E$2:$E;"<"&B6;BUGs\_Preprod!$C$2:$C;"Finalizada")+COUNTIFS(BUGs\_US!$D$2:$D;">="&B5;BUGs\_US!$D$2:$D;"<"&B6;BUGs\_US!$E$2:$E;">="&B5;BUGs\_US!$E$2:$E;"<"&B6;BUGs\_US!$C$2:$C;"Finalizada")+COUNTIFS(BUGs\_Prod!$D$2:$D;">="&B5;BUGs\_Prod!$D$2:$D;"<"&B6;BUGs\_Prod!$E$2:$E;">="&B5;BUGs\_Prod!$E$2:$E;"<"&B6;BUGs\_Prod!$C$2:$C;"Finalizada")
dónde:
-
BUGs_Preprod!$D$2:$D ⇒corresponde a la columna que contiene la fecha de creación del defecto de la pestaña BUGs_Preprod
-
BUGs_Preprod!$E$2:$E ⇒ corresponde a la columna que contiene la fecha de resolución del defecto de la pestaña BUGs_Preprod
-
BUGs_Preprod!$C$2:$C ⇒ corresponde a la columna donde aparece el estado del defecto de la pestaña BUGs_Preprod
-
BUGs_US!$D$2:$D ⇒ corresponde a la columna que contiene la fecha de creación del defecto de la pestaña BUGs_US
-
BUGs_US!$E$2:$E ⇒ corresponde a la columna que contiene la fecha de resolución del defecto de la pestaña BUGs_US
-
BUGs_US!$C$2:$C ⇒ corresponde a la columna que contiene el estado del defecto de la pestaña BUGs_US
-
BUGs_Prod!$D$2:$D ⇒ corresponde a la columna que contiene la fecha de creación del defecto de la pestaña BUGs_Prod
-
BUGs_Prod!$E$2:$E ⇒ corresponde a la columna que contiene la fecha de resolución del defecto de la pestaña BUGs_Prod
-
BUGs_Prod!$C$2:$C ⇒ corresponde a la columna que contiene el estado del defecto de la pestaña BUGs_Prod
-
&B5 ⇒ es la fecha inicial
-
&B6 ⇒ es la fecha final
DRE
\=IF(F5\="";"";IF(F5\=0;1;IF(H5/F5\>1;1;H5/F5)))
dónde:
-
F5 ⇒ es el total de defectos encontrados
-
H5 ⇒ son los defectos solucionados
DAA
Para calcular esta métrica vamos a usar una función de Google App Script por cada una de las pestañas (BUGs_Preprod, BUGs_Prod, BUGs_US). Los pasos a seguir serían:
1-Ir a Extensiones ⇒ App Scripts y esto nos abre una nueva ventana en el navegador.
2- En ella pulsaremos sobre el botón + ⇒ Apps Script
3- Se creará un nuevo archivo al que tendremos que dar un nombre, por ejemplo Código.gs
4- En este archivo pegaremos la siguiente función 3 veces, cambiando el nombre de la función (getDAA_Prod y getDAA_US) y la pestaña sobre la que queramos trabajar (BUGs_Prod y BUGs_US)
function getDAA\_Preprod(end\_date) {
var sheet = SpreadsheetApp.getActive().getSheetByName('BUGs\_Preprod');
var lastRow = sheet.getLastRow();
var rangeCreatedDate = sheet.getRange(2, 4, lastRow).getValues();
var rangeResolutionDate = sheet.getRange(2, 5, lastRow).getValues();
var ageOfAllDefects = 0;
var totalNumberOfDefects = 0;
for (var row in rangeCreatedDate) {
var resolutionTime = new Date(rangeResolutionDate\[row\]);
if (resolutionTime < end\_date) {
var createdTime = new Date(rangeCreatedDate\[row\]);
//Age of a defect = Resolution Date - Creation Date
var diff = resolutionTime.getTime() - createdTime.getTime();
var ageOfDefectInDays = Math.round(diff / (1000 \* 60 \* 60 \* 24));
Logger.log('createdTime: %s, resolutionTime: %s, ageOfDefectInDays: %s', createdTime, resolutionTime, ageOfDefectInDays);
ageOfAllDefects += ageOfDefectInDays;
Logger.log('ageOfAllDefects: %s days', ageOfAllDefects);
totalNumberOfDefects++;
Logger.log('totalNumberOfDefects: %s', totalNumberOfDefects);
}
}
if (totalNumberOfDefects == 0){
return 0;
}
var result = ageOfAllDefects / totalNumberOfDefects;
return result;
}
En la columna donde queramos tener el cálculo del DAA pondremos la siguiente fórmula (cambiando el nombre en función de la columna) que invoca a las funciones definidas anteriormente.
\=getDAA\_Preprod(B6)
dónde:
- B6 ⇒ es la fecha final
Paso 4: Visualizar los datos en Looker Studio
Looker Studio (anteriormente Google Data Studio) es una plataforma de visualización de datos que te permite crear paneles interactivos y gráficos informativos.
Para visualizar las métricas de calidad calculadas anteriormente seguiremos los siguientes pasos.
Conectar Looker Studio a Google Sheets:
Iremos a Looker Studio y pulsaremos en Informe vacío
Esta acción nos abrirá una pantalla cómo la siguiente donde elegir la fuente de datos desde dónde queremos importar nuestros datos.
Seleccionamos la opción Hojas de cálculo de Google y se abrirá una nueva ventana. En ella, se nos solicitará autorizar a Looker Studio para acceder a nuestras hojas de cálculo de Google. Este paso es necesario para establecer la conexión entre ambas plataformas y permitir que Looker Studio pueda leer y utilizar los datos de nuestras hojas de cálculo.
Una vez completada la autorización, se mostrará una lista de las hojas de cálculo de Google a las que tienes acceso. Selecciona la hoja que te interesa y la pestaña que contiene los datos que deseas importar, en este caso, la pestaña DataStudio. Finalmente, haz clic en el botón Añadir ubicado en la parte inferior derecha.
Con esto, tendremos ya nuestros datos de la pestaña DataStudio añadidos en Looker Studio para poder crear gráficos con ellos.
Crear gráficos
En función de la métrica que vayamos a visualizar, usaremos un tipo de gráfico u otro. En nuestro caso usaremos:
-
Gráfico combinado ⇒ tanto para DDE como DRE
-
Gráfico de líneas ⇒ DAA
Para crear un gráfico, haz clic en Añadir un gráfico y selecciona el tipo de gráfico que prefieras.
DDE
Para el gráfico del DDE tendremos que hacer la siguiente configuración después de haber seleccionado el gráfico.
Para visualizar los datos según nuestras preferencias en las diferentes series, le aplicaremos los siguientes estilos:
Una vez configurado todo lo anterior, el gráfico que visualizaremos será como el siguiente:
DRE
Para el gráfico del DRE tendremos que hacer la misma configuración y establecer los mismos estilos que para la métrica DDE cambiando sólamente las 3 métricas de entrada que en este caso serían:
-
DRE
-
Defectos solucionados
-
Total de defectos
Una vez configurado todo, el gráfico que visualizaremos será como el siguiente:
DAA
Una vez seleccionado el gráfico para el DAA, procederemos con la siguiente configuración:
Le daremos los siguientes estilos para visualizar los datos como queremos.
Una vez configurado todo, el gráfico que visualizaremos será como el siguiente:
Paso 5: Analizar la evolución de las métricas de calidad
Al visualizar las métricas DDE, DRE y DAA en Looker Studio, podemos identificar tendencias y patrones a lo largo del tiempo. Esto nos permite:
-
Evaluar la efectividad de las estrategias de mejora de la calidad: Si estás implementando cambios en tus procesos de desarrollo, puedes realizar un seguimiento de su impacto en las métricas de calidad.
-
Identificar áreas problemáticas: Si ciertas métricas muestran una tendencia negativa, puedes investigar las causas subyacentes y tomar medidas correctivas.
-
Comparar el rendimiento de diferentes equipos o proyectos: Puedes utilizar las métricas de calidad para comparar el rendimiento de diferentes equipos o proyectos y identificar las mejores prácticas.
¿Cómo podemos analizar el valor de la métrica DDE?
-
Un valor alto del DDE nos indica que un porcentaje significativo de los defectos presentes en el software se han identificado durante las pruebas, lo que sugiere un proceso de detección de defectos más eficaz.
-
Un valor bajo de DDE nos puede indicar que un gran número de defectos no se han detectado durante las pruebas, lo que pone de manifiesto posibles deficiencias en el enfoque de las mismas.
¿Cómo podemos analizar el valor de la métrica DRE?
-
Un valor alto del DRE nos indica una alta eficacia en la detección y corrección de defectos, lo que significa que la mayoría de los defectos se han identificado y resuelto durante la fase específica.
-
Un valor bajo del DRE nos puede indicar ineficacia en el proceso de detección de defectos o la necesidad de mejorar los métodos de prueba y corrección de defectos.
¿Cómo podemos analizar el valor de la métrica DAA?
-
Un valor alto del DAA nos puede indicar que los defectos no se han solucionado con la velocidad adecuada y que hay que detectar qué es lo que ha ocurrido para que esto pase.
-
Un valor bajo del DAA nos indica que la capacidad del equipo de desarrollo para corregir los defectos es bastante rápida.
Conclusión
En este artículo se presenta una metodología ágil para calcular métricas clave de calidad, como DDE, DRE y DAA, que proporcionan información valiosa para optimizar los procesos de calidad en proyectos. Utilizando herramientas como JIRA Cloud, Google Sheets y Looker Studio, es posible centralizar estos datos y automatizar su obtención (exceptuando las configuraciones iniciales). Esto permite a todos los miembros del equipo, ya sean de desarrollo, negocio o calidad, tener visibilidad clara y en tiempo real sobre el estado de la calidad del proyecto.
Nuestras últimas novedades
¿Te interesa saber cómo nos adaptamos constantemente a la nueva frontera digital?

Insight
23 de enero de 2025
Roles y responsabilidades Scrum: un paso hacia la transparencia y el compromiso

Tech Insight
19 de diciembre de 2024
Contract Testing con Pact - La guía definitiva

Insight
18 de diciembre de 2024
Agilidad, complejidad y método empírico

Insight
10 de diciembre de 2024
Tecnologías rompedoras hoy, que redibujarán el mapa de la innovación en 2025