Excelencia en la entrega de software con métricas SPACE

Si en vez de leer prefieres escuchar, dale al play.

Excelencia en la entrega de software con métricas SPACE
6:37

Contar con equipos productivos y felices es bueno para los negocios. Los equipos de desarrollo son una de las inversiones más caras para la mayoría de las empresas y tiene sentido asegurarse de que esa inversión sea eficaz. Sin embargo, la productividad de los equipos de desarrollo es difícil de entender y mucho más de gestionar. Las métricas tradicionales para medir la productividad ignoran su naturaleza compleja y llena de matices, lo que da lugar a simplificaciones poco útiles. Sobra decir que métricas como el número de líneas de código y los puntos de historia están plagadas de problemas.

El trabajo realizado por la organización DevOps Research and Assessment (DORA) ha liderado los esfuerzos para crear una comprensión más profunda del tema, y el informe más reciente sobre SPACE ha hecho progresar aún más este trabajo.

Se ha hablado mucho de las 4 métricas clave de DORA, popularizadas por el excelente libro Accelerate y analizadas en varios artículos por líderes de opinión de Codurance. Por eso, en este artículo nos centraremos en SPACE.

SPACE: Un método para entender la productividad de los desarrolladores

SPACE es un marco propuesto en un informe por Nicole Forsgren de GitHub, Margaret-Anne Storey de la Universidad de Victoria y Chandra Maddila, Thomas Zimmermann, Brian Houck y Jenna Butler de Microsoft Research. 

En sus siglas en inglés, SPACE es un acrónimo que significa Satisfacción y bienestar, Rendimiento, Actividad, Comunicación y colaboración, y Eficiencia y flujo (Satisfaction and well-being, Performance, Activity, Communication and collaboration, and Efficiency and flow). Cada componente de SPACE es crucial para una visión global de la productividad y es importante considerarlos en su conjunto.

Satisfacción y bienestar (S)

Este aspecto se centra en la felicidad, la satisfacción laboral y el bienestar general de los desarrolladores. Se basa en la idea de que un profesional satisfecho y mentalmente sano es más productivo. Entre las métricas de satisfacción y bienestar más comunes se incluyen:

  • Encuestas de satisfacción de los empleados
  • Evaluaciones de bienestar (por ejemplo, niveles de estrés, equilibrio entre vida laboral y personal)
  • Índices de retención y rotación
  • Frecuencia de reportes de síntomas de burnout
  • Puntuación del Net Promoter Score (eNPS) de los empleados
  • Índice de seguridad psicológica
  • Puntuaciones de compromiso a través de herramientas internas

Rendimiento (P)

El rendimiento se refiere a la eficacia y los resultados del trabajo de desarrollo. Esto incluye la calidad del código, la funcionalidad del software y su capacidad para satisfacer las necesidades de los usuarios. En esta categoría se incluyen algunas métricas de DORA como la tasa de fallos de cambios, el tiempo de restablecimiento del servicio y aspectos de la frecuencia de despliegue (es decir, despliegues que dan lugar a nuevas funcionalidades). Una lista más completa incluye:

  • Número de funcionalidades desplegadas
  • Métricas de calidad del código (por ejemplo, complejidad del código, cobertura de pruebas automatizadas, deuda técnica)
  • Índice de errores y tiempos de resolución
  • Tiempo de actividad y fiabilidad del sistema
  • Time to market de nuevas funcionalidades
  • Puntuaciones de satisfacción de lo clientes
  • Rendimiento con respecto a los indicadores clave de rendimiento (KPI)

Actividad (A)

Esta métrica analiza el volumen y el tipo de actividad que llevan a cabo los desarrolladores. Ayuda a comprender los patrones de trabajo y a identificar los cuellos de botella. La métrica de frecuencia de despliegue de DORA, cuando se hace un seguimiento de los despliegues, entraría en esta categoría. Otras métricas son:

  • Número de commits y pull requests
  • Cambios en el código (frecuencia con la que se modifica el código)
  • Volumen de actividad de code review
  • Número de tareas o historias completadas
  • Seguimiento del tiempo dedicado a las distintas actividades de desarrollo
  • Frecuencia de despliegue

Comunicación y colaboración (C)

Este apartado evalúa lo bien que se comunican y colaboran los miembros del equipo. Incluye métricas relacionadas con herramientas de colaboración, frecuencia y calidad de la comunicación y eficacia de las reuniones de equipo. Una buena comunicación y colaboración son vitales para un entorno de equipo productivo. Para medir este ámbito se puede utilizar lo siguiente:

  • Número y calidad de las revisiones del código.
  • Frecuencia y eficacia de las reuniones de equipo (por ejemplo, stand-ups, retrospectivas).
  • Métricas de uso de herramientas de colaboración (por ejemplo, Slack, Teams).
  • Colaboraciones y dependencias entre equipos.
  • Eficacia de la gestión de incidentes y problemas.
  • Puntuaciones de encuestas internas sobre colaboración en equipo.
  • Tiempo para fusionar pull requests.

Eficiencia y flujo (E)

La eficiencia se refiere a la efectividad con que se utilizan los recursos para alcanzar los objetivos, mientras que la fluidez se refiere al estado de estar profundamente comprometido y plenamente concentrado en el trabajo sin interrupciones. Este apartado de SPACE mide aspectos como el tiempo dedicado a las distintas tareas, la facilidad para entrar en un estado de fluidez y en qué medida el entorno de trabajo favorece el trabajo eficiente y sin interrupciones.

  • Lead time (tiempo desde la idea hasta la implementación)
  • Duración del ciclo (tiempo necesario para completar una tarea)
  • Eficiencia del flujo (tiempo de trabajo activo frente al tiempo total)
  • Cumplimiento de los límites del trabajo en curso
  • Frecuencia de cambio de contexto
  • Relación entre trabajo planificado y no planificado
  • Tiempo de inactividad (downtime) o tiempo perdido por problemas del sistema

Productividad: Marco SPACE - Optimizando la felicidad de los desarrolladores, la calidad del código, la colaboración y la eficiencia de recursos.

La recopilación y el análisis de estas métricas pueden ofrecer información muy valiosa sobre la productividad y la salud de un equipo de desarrollo. Es importante tener en cuenta que la pertinencia y aplicabilidad de estas métricas puede variar en función del tamaño de la organización, la estructura y la naturaleza del trabajo. Además, se necesita un enfoque equilibrado para garantizar que las métricas se utilizan para apoyar y mejorar la experiencia de los desarrolladores, no sólo para el seguimiento del rendimiento.

Reserva una evaluación de la calidad de tu software para medir el rendimiento de tu organización con datos empíricos.

Evalúa la calidad de tu software con nuestro Software Quality Assessment