Existe una gran cantidad de artículos que hablan sobre medir la productividad. En esta publicación, analizaremos el tema en TI desde distintos ángulos empezando por el por qué las empresas evalúan la productividad en los equipos de ingeniería, cómo evalúan la productividad del equipo, análisis de cada sistema y tips para poder mejorar el flujo de trabajo. Aunque es verdad que cada empresa diseña su propio sistema para medir la productividad, nos basaremos en las compañías con las mejores prácticas en la industria de tecnologías de la información.
Recuerda que puedes encontrar empresas de alto nivel que aplican las mejores prácticas en cuanto a métricas de productividad y aplicar para una vacante dentro de nuestro portal de trabajo y ¡darle un impulso a tu carrera!
¿Qué es la productividad?
En este contexto, ¿a qué nos referimos cuando hablamos de productividad en los equipos de trabajo? Básicamente, es el vínculo entre los recursos que necesita un trabajador para obtener un resultado o un determinado producto. Cuanto más efectivo sea este proceso, más eficiente será una persona, equipo o empresa en general.
Hay distintas razones por las cuales las compañías buscan medir la productividad dentro del equipo de ingenieros, algunas de ellas son:
- Para crear análisis competitivos y benchmarking
- Para seguir el progreso a lo largo del tiempo
- Reconocer y premiar a los mejores trabajadores
- Identificar y difundir procedimientos de desarrollo más productivos en toda la empresa
- Conocer el porcentaje de eficiencia del flujo de trabajo
Medir esto correctamente no solo ayudará a aumentar los números de producción, sino que también optimizará los recursos gastados en ella, corregirá procedimientos y patrones incorrectos y, en general, tomará las decisiones estratégicas adecuadas para la evolución de la empresa o negocio.
Es necesario tener medidas de productividad y eficiencia en los equipos de ingeniería para poder establecer qué modelos de trabajo son los adecuados para poder emplearlos y mejorar el flujo de trabajo en la empresa, como consecuencia, obteniendo mejores resultados.
Modelos generalmente usados para obtener métricas de productividad son:
- DORA Metrics
- SPACE Framework
DORA Metrics
Los equipos de DevOps cada vez utilizan más las métricas de DORA para evaluar el rendimiento y determinar si tienen un “desempeño deficiente” o un “rendimiento de élite”.
Las 4 métricas que usa DORA Metrics son:
- Development Frequency (DF) – Se refiere a la frecuencia de implementaciones de código exitosas para una aplicación
- Lead time for changes (LT) – Básicamente, mide la velocidad de la entrega del software
- Mean time to recovery (MTTR) – Es el tiempo requerido para recuperar y abordar todos los problemas que aparecen en un lanzamiento
- Change failure rate (CFR) – Se refiere al porcentaje de implementaciones de código causando un problema en la producción
DORA ha transformado la forma en que funcionan los equipos de DevOps, ya que estas métricas brindan visibilidad y hechos reales que se pueden utilizar como base para la mejora y la toma de decisiones. Esta estrategia permite que los equipos entreguen con mayor eficacia sus tareas, mientras reducen el riesgo.
Las métricas de DORA resumen los procesos de desarrollo y entrega de software y los hacen más concretos y visibles, lo que permite a los ejecutivos de ingeniería tomar medidas específicas para optimizar los procedimientos y aumentar el valor del producto.
SPACE Framework
Este framework permite tener un punto de vista más holístico de la productividad del programador, intentando definir varios puntos de datos para medir rápidamente su productividad, así como su entorno, como resultado, brindando a los managers herramientas para poder evaluar los cambios.
Los autores de este Framework son grandes mentes y líderes de la industria tecnológica:
- Dr. Nicole Forsgren (VP of Research & Strategy at GitHub)
- Margaret-Anne Storey (Professor of Computer Science at the University of Victoria)
- Chandra Maddila (Senior Research Engineer at Microsoft Research)
- Thomas Zimmermann (Senior Principal Researcher at Microsoft Research)
- Brian Houck (Principal Program Manager in the Azure Engineering Systems at Microsoft)
- Jenna Butler (Senior Software Engineer at Microsoft)
De acuerdo al SPACE research paper,
“La productividad de los desarrolladores es necesaria no solo para mejorar los resultados de ingeniería, sino también para garantizar el bienestar y la satisfacción de los desarrolladores, ya que la productividad y la satisfacción están estrechamente relacionadas”
Sus autores argumentan que el SPACE Framework fue elaborado para capturar varios aspectos de la productividad del desarrollador y refutar los conceptos equivocados al respecto, como la idea de que la productividad se evalúa por el volumen de actividad, las herramientas o el desempeño individual.
S: Satisfacción y bienestar
P: Rendimiento (Performance)
A: Actividad
C: Comunicación y colaboración
E: Eficiencia y flujo
El framework de productividad SPACE propone varias medidas separadas para cada uno de ellos, que se aplican a varios niveles, como persona, equipo o grupo y sistema. SPACE, recomienda también usar una cantidad menor de métricas que abarquen los tres niveles e indiquen diversos aspectos de producción en lugar de todos los datos a la vez.
Esquema visual de los SPACE Metrics.
Business Alignment (se asegura que los ingenieros están alineados con los objetivos de la empresa): Rendimiento
People Management (Interés genuino en el bienestar de los desarrolladores): Satisfacción y Comunicación
Engineering Execution (Teniendo una rápida, eficiente y entrega de calidad): Actividad, Eficiencia y Colaboración.
Tips para mejorar la productividad en tu equipo
-
No confundas tiempo invertido con eficiencia
Imagina que uno de tus desarrolladores está poniendo mucho esfuerzo en un proyecto, trabajando muchas horas, solo para que te des cuenta después que el trabajo que ha estado haciendo era de baja calidad, o peor aún, un proyecto que la empresa realmente no necesita.
-
Fomenta la comunicación frecuente con tu equipo
Anima a tus desarrolladores a hacer preguntas, conectarse con otros e intercambiar ideas. Y también con la documentación, sería de gran ayuda si cuenta con los pasos y protocolos importantes y guardarla en sistemas cloud-based.
-
Ten cuidado lo que comunicas
Un ejemplo es, cuando en algún punto del proyecto hay cambios de tareas muy constantes, es de vital importancia ser directos, breves y concisos con la información que se transmite al equipo. Ya que puede haber confusiones con los objetivos del proyecto si no hay claridad y/o arruinar el workflow de sus desarrolladores.
-
Empodera a los desarrolladores con herramientas de productividad
Comienza con un buen hardware: si bien las computadoras portátiles son excelentes para la mayoría de las tareas de los desarrolladores, aún debe vincularlas con algunos monitores grandes.
-
Implementa metodologías ágiles
Esto te permite desglosar el management del proyecto entre diferentes fases, esto te permite llegar al mercado más rápido y resolver los problemas en el camino. Es recomendable ir avanzando y alcanzando metas, que sólo buscar un milestone final.
-
Involucra a los desarrolladores al establecer los plazos de entrega
Es importante llegar a un acuerdo con tus desarrolladores sobre este punto ya que ellos tienen el conocimiento adecuado de estos proyectos y saben con certeza, el tiempo realista en que tomaría desarrollarlos.
-
Fomenta hábitos saludables entre el ambiente laboral
Animar a tus desarrolladores a adoptar hábitos saludables mejorará su productividad. Promueve el uso de tomar descansos para evitar fatiga mental, asiste al cuidado de su salud mental ofreciendo cubrir el gasto de un psicólogo.
Su trabajo es sedentario, por lo que puedes proporcionarles algunos pases de gimnasio para que se muevan y evitar que sus músculos se atrofien.
-
Automatiza lo que puedas para evitar tareas tediosas
Este tipo de tareas tediosas, pueden llegar a quitar tiempo y a enfoque de otras tareas de mayor grado de importancia. Es necesario buscar automatizar las tareas que suelen ser repetitivas.
Conclusión: No todo está en las métricas, la productividad y el bienestar van de la mano
La productividad dentro de los equipos de programadores es un indicador importante para evaluar la calidad del código y los grados de agotamiento del desarrollador. Esto permite a los gerentes monitorear a los desarrolladores y asegurarse de que su trabajo sea de alta calidad, así como asegurar la retención de la fuerza laboral. Recuerda, la productividad es un camino, no un destino, tú y tu equipo están juntos en esto.
Para CodersLink, la cultura laboral y el cumplimiento de un ambiente laboral que respete el balance vida trabajo son parte de los filtros que usamos con las empresas que publican sus vacantes en nuestro portal, por eso postularte a estas vacantes de trabajo, te llevarán al siguiente nivel de tu carrera que tanto buscas.