La productividad de los desarrolladores es una preocupación importante para la mayoría de las organizaciones. Todas las organizaciones comerciales y no comerciales dependen cada vez más del software y del ritmo y la eficiencia de la entrega de capacidades de software. La productividad de los desarrolladores es una métrica que determina el ritmo al que se pueden entregar las innovaciones de software, y también lo es La productividad de los desarrolladores es clave para el éxito organizacional.

Factores que afectan la productividad del desarrollador

Hay muchos factores que afectan la productividad del desarrollador y el impacto de cada uno varía según el contexto. A continuación se muestra una parcial Lista de algunos de los principales factores que afectan la productividad del desarrollador:

  • Tamaño de la iniciativa
  • Competencia técnica y experiencia
  • Habilidades interpersonales
  • Conocimiento del dominio
  • Enfoque/distracciones
  • Herramientas (incluido el uso de asistentes de código de IA)
  • Reutilización de código
  • Compromiso de liderazgo
  • Requisitos claros
  • Claridad de objetivo

Qué hacen los desarrolladores

Los desarrolladores normalmente trabajan en uno o en una combinación de los siguientes aspectos:

  • Nuevo Iniciativa de software (innovadora o no).
  • Mantenimiento y/o reparación de software (incluida la reparación de deuda técnica)
  • Eliminando/reemplazo de software

Tamaño del proyecto y productividad

El tamaño del proyecto es uno de los factores cuantificables más importantes que determinan de forma significativa la productividad del desarrollador. Por este motivo, nuestros parámetros de referencia se agrupan según el tamaño del proyecto.

Tamaño del proyecto y productividad del desarrollador

Veamos primero por qué ocurre esto.  Para que el trabajo de software sea exitoso es necesaria una comunicación estrecha entre usuarios, desarrolladores, evaluadores y otras partes interesadas. A medida que aumenta el tamaño de un equipo, la cantidad de tiempo y esfuerzo necesarios para comunicarse aumenta a un ritmo proporcional al cuadrado del número de miembros del equipo. Consideremos que la cantidad de líneas de comunicación entre los miembros del equipo es N x (N – 1) / 2

Tamaño del equipo y gastos generales de comunicación, fuente getlighthouse.com

La productividad del desarrollador se ve afectada por el tamaño del proyecto debido a: costo de la comunicación.  Afortunadamente, el tamaño del proyecto (tamaño funcional) se puede medir de forma estandarizada y válida. Por esta razón, vemos que el La mayor productividad se logra con equipos de 7 personas altamente competentes o menos.

Nuestros parámetros de productividad para desarrolladores

Productividad típica del desarrollador

Proyectos de <1000 CFP

Baja competencia

Horas por CFP

Competencia media

Horas por CFP

Alta competencia

Horas por CFP

Implementación del paquete 6 2 1
código bajo 8 3 2
Lenguaje de alto nivel (típico) 25 8 4
Dominio altamente regulado 80 20 12
Idioma/firmware de bajo nivel 80 20 12
Fuente: ScopeMaster Ltd

Esta tabla se refiere al número de horas de trabajo del desarrollador por Puntos de Función COSMIC entregados sin defectos, que hemos observado. Estos puntos de referencia se presentan en horas por CFP. También es legítimo utilizar el recíproco de CFP por horas trabajadas. También es útil consultar Productividad del equipo en CFP por sprint de 2 semanas de cada equipo.

Si bien estos puntos de referencia pueden resultarle útiles para realizar comparaciones con otras organizaciones, le recomendamos que acumule y fomente sus propios puntos de referencia internos para la productividad de los desarrolladores y otras dimensiones de los proyectos.  

La velocidad sólo significa estar ocupado

La velocidad es un término que se usa comúnmente entre los entusiastas de Agile y que da una idea de la velocidad con la que los desarrolladores hacen algo. Ya sea que se trate de cerrar tickets o entregar “puntos de historia”, generalmente significa marcar cosas en una lista. Desde un punto de vista literal, no se trata realmente de la velocidad en el sentido físico (dirección y magnitud), sino más bien de la actividad o la tasa de “cierre de tickets”. En nuestra opinión, se trata de una pseudométrica que tiene poco valor en el mundo real. Además, la velocidad, tal como la usan generalmente los equipos ágiles, es inconsistente, subjetiva y manipulable.