Este artículo es una extensión del anterior: Automatización de Jira Analytics con Apache NiFi . Ahora quiero ampliar nuestra visión de los informes sobre Jira Software y la experiencia de su implementación utilizando R. El lenguaje aquí, por supuesto, no es un dogma. Hoy nuestro todo es un concepto. La imagen está tomada aquí .
Imaginemos un rastreador de tareas. ¿Qué datos puedo, como analista, extraer de él? ¿O alguna plataforma de análisis estándar? El número de tareas del período, las estadísticas de registro, el desglose básico en proyectos, algunas imágenes sobre la productividad de los empleados ... y eso es todo, de improviso.
Pero todo lo que se hace se pone en grasa. Por lo tanto, probablemente pueda identificar algo más global: qué está haciendo el equipo y en qué dirección se está moviendo.
Sí lo hicimos. Sin embargo, no fue sin la ayuda de PM primero.
Reorganización del rastreador de tareas
Por supuesto, cada Jira específico es significativamente diferente de cualquier otro. Y es posible que nuestra solución no sea la más efectiva para usted, o incluso que no sea aplicable en absoluto.
Les pido que consideren esto solo como una idea de organizar un rastreador de tareas, usando el ejemplo de nuestra empresa de subcontratación.
Hicimos solo dos movimientos.
Primero y más simple. Se aceptó que todas las tareas dentro de una dirección deben estar ligadas a lo épico , por supuesto . Las epopeyas son los objetos más grandes de Jira y representan múltiples problemas. Ayudan a construir jerarquías y estructuras y también pueden abarcar múltiples sprints y versiones.
Un poco más sobre el segundo. Podremos ver el panorama general y responder preguntas estratégicas siel flujo de trabajo se presentará como una especie de flujo, al que cada empleado contribuye . Para ello, en nuestro caso, el concepto IT4IT es ideal, con su modelo operativo basado en una cadena de valor de cuatro vertientes: En realidad, ¿qué hemos hecho? Aprovechando IT4IT, agregamos un componente de tarea a Jira. Los tenemos de la siguiente manera:
- Servicio a la cartera (demanda y selección) : la etapa de "corte", búsqueda, elección de servicio, tecnología.
- Solicitud de implementación (planificación y diseño) : discusión, planificación del desarrollo, desarrollo de servicios, servicios.
- Solicitud de implementación (desarrollo) : desarrollo de un servicio, servicio de algo.
- Solicitud de implementación (implementación) : implementación de algo.
- Solicitud de implementación (prueba) : prueba de un servicio, servicio.
- Solicitud para cumplir : etapa de operación de los servicios desarrollados, prestación de servicios.
- Detectar para corregir (corregir) : corregir, perfeccionar los servicios internos y los servicios.
- Detectar para corregir (monitorización y retroalimentación) : lo mismo, solo + comunicación con el cliente.
En esta etapa, quizás lo más difícil sea convencer a los empleados de que un elemento extra en el rastreador no es en vano y que debe llenarse correctamente.
Análisis de datos en R
Ahora no debería haber obstáculos para la implementación de informes. Formularé la similitud de los conocimientos tradicionales.
Dado que al comienzo de cada semana el equipo se reúne para el mit para la planificación, el informe debe ser semanal. Es importante para nosotros ver estadísticas sobre la aparición y el progreso de las tareas, el registro de empleados y la contribución de cada uno de ellos al panorama general. Responde a la pregunta: ¿qué está haciendo el equipo? En términos de epopeyas y componentes.
Sabiendo lo que necesitamos conseguir, vamos a descargar los datos. A través de la API de Jira, solicitamos todos los problemas (problemas) que se actualizaron la semana pasada. Extraemos claves de ellos y cargamos el historial de registro (registro de trabajo) y el historial de cambios (registro de cambios) para cada tarea. Las perversiones con sobrecarga son necesarias para sortear las restricciones de los apish.
A continuación, comienza el área de responsabilidad R, porque el preprocesamiento de los datos recibidos es un componente del script de generación de informes.
No hay nada inteligente en él, solo necesita analizar los JSON que provienen de la api y dejar solo las propiedades necesarias (elementos en Jira). El único momento, al procesar el registro de cambios, solo nos interesan los cambios de estado de la tarea, el resto se puede eliminar de forma segura.
Y finalmente, llegamos a la analítica.
Descubra cuántas tareas se han abierto, estaban en curso, cerradas y pospuestas durante la última semana. Eche un vistazo al código R:
#
this_week_opened <- jira_changelog_data %>%
filter(issue_type != "Epic") %>%
filter(as.Date(issue_created) >= start_date) %>%
filter(as.Date(issue_created) <= end_date) %>%
select(key, issue_created) %>% unique() %>% nrow()
#
this_week_processed <- jira_worklog_data %>%
filter(as.Date(started) >= start_date) %>%
filter(as.Date(started) <= end_date) %>%
select(key) %>% unique() %>% nrow()
#
this_week_closed <- jira_changelog_data %>%
filter(issue_type != "Epic") %>%
filter(as.Date(issue_resolutiondate) >= start_date) %>%
filter(as.Date(issue_resolutiondate) <= end_date) %>%
select(key, issue_created) %>% unique() %>% nrow()
# /
this_week_holded <- issue_history %>%
filter(change_date >= start_date) %>%
filter(change_date <= end_date) %>%
filter(toString == "Hold" | toString == "Backlog") %>%
select(key) %>% unique() %>% nrow()
¿Te recuerda esto al pseudocódigo? Y si digo que el operador ' %>% ' transfiere datos de la función anterior a la siguiente. Y la última modificación de toda la cadena se guardará en una variable. ¡Imagínese, acabamos de alcanzar el umbral de entrada en R!
¿Te has enamorado ya de él? Luego, si lo desea, agregaré más información.
Palabras de Wikipedia:
En general, como lenguaje de programación, R es bastante simple e incluso primitivo. Su mayor fortaleza es su expansión ilimitada con paquetes.
La entrega básica de R incluye un conjunto básico de paquetes y, en total, a partir de 2019, hay más de 15,316 paquetes disponibles.
Y lo último por hoy. Este año, R se ubicó entre los diez idiomas más populares del mundo ( prueba ). Estoy orgulloso de el.
Perdóname por este retiro. Puedo hablar de R durante horas. Es solo que está completamente envuelto en mitos, y me gusta destruirlos, un pasatiempo, ya sabes.
Volvamos al informe. Teniendo los números requeridos, los visualizamos. Después de eso, distinguimos el registro de empleados. Así es como se ve esta parte con nosotros: continuaré mostrándoles las imágenes finales del mismo informe real. Nuestra línea de negocio se refleja en el siguiente gráfico. También le permite evaluar la carga de trabajo de los empleados con actividades operativas. Y aquí hay un desglose de todas las tareas por componente. Él da la respuesta a la pregunta de qué estamos haciendo. Complemento la imagen con figuras.
Bueno, la contribución prometida de cada empleado al panorama general que se muestra arriba.
Estoy seguro de que notará inmediatamente dónde está nuestro desarrollador y dónde está el administrador. Nos esforzábamos por lograr esta claridad. El informe real también se complementa con un resumen del movimiento de tareas. Esta es una adición a las estadísticas generales publicadas al principio, con los nombres de las tareas y los nombres de las personas a cargo.
Generando un informe
Para configurar la generación automática de informes, por ejemplo, los lunes desde un script R, puede usar el paquete cronR , es extremadamente simple.
Con nosotros todo es más complicado y elegante. Usamos Apache NiFi para descargar datos de la API de Jira semanalmente, ejecutar el script de generación de informes y enviar un informe a todos los empleados por correo electrónico . Este tema es tan extenso que merece un artículo aparte .
Conclusión
La cantidad de implementaciones de Jira Software, así como la cantidad de empresas donde se usa, es mucha. Al mismo tiempo, cada jefe necesita su propia base de métricas única para una gestión tácticamente correcta. Sí, hay eazyBI y otros complementos para el análisis de Jira, pero el resultado es como comprar un traje en la tienda en lugar de un Bespoke personalizado.
El informe considerado se cose de acuerdo con las plantillas. Según el jefe, proporciona una visión estratégica de lo que está haciendo la unidad o el equipo . Espero que este artículo te ayude a implementar algo similar en casa.
Gracias.