¿Cuáles son algunos KPI sensatos para un equipo de desarrolladores de aplicaciones web?

Esta semana, la dirección ejecutiva me encargó que elaborara algunos KPI (indicadores clave de rendimiento) anuales para nuestro equipo de desarrollo para finales de mes. También quieren que los desarrolladores individuales establezcan sus propios KPI personales.

¿Tiene alguna sugerencia de KPI útiles para un equipo formado principalmente por desarrolladores de Rails?

Estoy pensando en cosas como las métricas de calidad del código que ves en los repositorios de Github. Al mismo tiempo, tengo algunas reservas.

Durante el último año, en ausencia de KPI, nuestro equipo ha trabajado con éxito para perfeccionar nuestras prácticas de desarrollo, acelerar la entrega y mejorar la calidad de nuestras aplicaciones, y desarrollar un verdadero espíritu de equipo . Me preocupa que esto interfiera con eso y (para citar un nuevo término que encontré recientemente) se encuentre con la Ley de Goodhart .

En mi investigación preliminar, también encontré esta línea citable sobre el tema:

Si alguna vez hubo una forma determinada de matar la moral en una startup, fue introduciendo KPI y llamándolos KPI.

Seguimos siendo una empresa relativamente pequeña y joven con lo que nos gusta pensar que es un ambiente de inicio.

Estoy preparado para rechazar la iniciativa. Pero pensé que debería darle a la idea una audiencia justa. Enlaces, sugerencias, argumentos en contra de la idea general son bienvenidos. ¡Gracias!

@klenwell: En la startup en la que trabajo, usamos métricas blandas, no individuales. ¿Cuántos errores se crearon frente a cuántos se eliminaron? ¿Cuáles fueron los componentes con más errores del software? ¿Qué tan productivo se siente el equipo? ¿Cómo nos sentimos acerca de las personas, la comunicación y el flujo de trabajo? ¿Qué tan acertadas fueron nuestras predicciones de complejidad? ¿Cuál es nuestra cobertura de código? — No miden el desempeño individual (ya que el trabajo en nuestro contexto es muy colaborativo), sino la calidad del esfuerzo de nuestro equipo. No se pueden usar para prescribir una decisión clara (y profundamente defectuosa), sino para resaltar dónde puede mejorar el equipo .
Reducir el "rendimiento" en el trabajo de conocimiento a 1 o unos pocos números está condenado a ser una métrica deficiente, al fracaso total o incluso al juego de los manipuladores inteligentes. En su lugar, utilice evaluaciones escritas. A lo largo del año, escriba sobre cada proyecto como si fuera una reseña de una película, solicite la opinión de sus usuarios/clientes, nombre a los contribuyentes y sus logros, analice el impacto del trabajo en la organización en su conjunto y cómo prepara el escenario. para más trabajo. ¿Es eso "objetivo"? NO, pero tiene mucho más significado y utilidad que un conjunto tonto de números KPI (o objetivos SMART BS)

Respuestas (2)

En mi experiencia, su intuición sobre los KPI es acertada. Matará la moral y te perderán el respeto profesionalmente. Parece que la gerencia quiere convertir un ambiente de trabajo atractivo y de poca rotación en un infierno burocrático que chupa el alma.

He pasado por 2 de estos yo mismo. Siempre termina con todos sus tops saliendo dentro de 2 años y eventualmente dejándolo con un montón de personas que aguantarán los KPI porque tienen dificultades para encontrar otros trabajos. Además, incluso los desarrolladores mediocres son lo suficientemente inteligentes como para jugar con cualquier sistema con el que intentes administrarlos. En mi experiencia, esto sucede a menudo después de una adquisición de la nueva empresa matriz o un nuevo equipo ejecutivo.

Dice el adagio que "administrar desarrolladores es como pastorear gatos". Mi mejor consejo al respecto es darles la propiedad y la responsabilidad de un dominio, y orientación sobre cómo priorizar las solicitudes. Sus tops pueden autogestionarse (y probablemente lo prefieran), mientras que sus niveles medio y de entrada pueden necesitar más orientación, pero los KPI no son la respuesta. Esas son cosas del centro de llamadas. Los desarrolladores son creativos. También son buenos en matemáticas, que es un par de rasgos muy raros. Lo peor que puede hacer es administrarlos como un reloj en los trabajadores.

Si es absolutamente necesario medir algo, seleccione algo que a la empresa realmente le deba importar, como el recuento de errores nuevos o la proporción de errores a funciones nuevas.

Durante el último año, en ausencia de KPI, nuestro equipo ha trabajado con éxito para perfeccionar nuestras prácticas de desarrollo, acelerar la entrega y mejorar la calidad de nuestras aplicaciones, y desarrollar un verdadero espíritu de equipo.

Has encontrado algo que funciona para tu equipo. Sigue haciendo eso hasta que no lo haga.

¿Cómo sabe que esas cosas están funcionando/mejorando si no está midiendo nada? (Y si lo es, entonces diría que esos deberían ser los KPI que exige la gerencia).
La mentalidad para la mayoría de los desarrolladores sería:If we are delivering results in a timely manner, why would we need to measure it?
@JuhaUntinen ¿Por qué alguien querría mejorar, alguna vez?
@diev, él puede medir cosas, simplemente no pase por la farsa de KPI. Todos los desarrolladores pueden verlo bien. Como dije, mida las cosas que él ya puede medir, como el número de errores, el número de funciones, el deslizamiento de versiones, los cortes en el alcance, etc. Quiere un taller que funcione sin problemas y lo hace eliminando la mayor cantidad de fricción posible. Simplifique los flujos de trabajo, no los complique. Mantenga a los clientes alejados de los desarrolladores si es posible, etc. Los KPI agregan fricción porque los desarrolladores están ocupados descubriendo cómo jugar con el sistema. Los desarrolladores mejoran sabiendo más cosas, no minimizando los pasos mecánicamente.
@diev, además, lo más eficiente que puede hacer con un código base a lo largo del tiempo es hacerlo intuitivo, modular y mantenible. Si tiene una gran base de código loca y demasiado compleja, la pagará durante décadas. Los errores serán más difíciles de encontrar, las nuevas funciones serán más difíciles de implementar y más propensas a errores, lo que conducirá a un código pirateado y es un círculo vicioso. ¿Cómo mide qué tan mantenible es su base de código? Ciertamente, no lo hace "exigiendo" KPI.
Para opinar sobre el debate que ha surgido aquí, usamos scrum (con cordura, espero que sea justo decirlo) para rastrear un par de métricas clave: tamaño del lote (puntos de la historia) y velocidad (puntos por sprint). Nos esforzamos por mantener el tamaño del lote pequeño (a la Reinertsen ) y el aumento de la velocidad (aunque ese número se ha acercado a un límite). No quiero que estos KPI se acerquen por temor a que fomenten la manipulación o el juego de los números como sugieren Tombo y otros. Me resistiría a contar errores por la misma razón. Pero abierto a ideas para otros KPI.
"administrar desarrolladores es como arrear gatos". Pero lo que la gente parece pasar por alto es que el método más fácil para arrear gatos es mover sus tazones de comida. Esto es tan aplicable a los humanos como a los gatos.

¿Entiende cómo se va a utilizar esta información? ¿Los objetivos inmediatos y a largo plazo de la alta dirección? Esta comprensión básica debería ayudarlo a determinar qué métricas monitorear y cómo informarlas.

Por ejemplo, si la gerencia ejecutiva está interesada en el desempeño general del departamento, puede informar la información de tal manera que evite señalar a una sola persona del equipo. Si este es el objetivo, es mucho más probable que obtenga la aceptación de los miembros individuales del equipo.

Sin embargo, si esta información se utilizará a nivel individual en las revisiones de desempeño, para determinar el avance, la compensación o el posible despido; entonces se convierte en una venta mucho más difícil para el equipo.

Dicho esto, las métricas individuales son importantes y pueden ser muy valiosas si se usan correctamente; así que deberías coleccionarlos. Pero en mi experiencia, las métricas de un individuo deben tratarse como confidenciales al igual que el pago, las revisiones de desempeño y los archivos de recursos humanos.

Si bien soy un firme defensor del uso de métricas y KPI para los equipos de desarrollo, hay muchas advertencias que a menudo se pasan por alto. Como resultado, los KPI, independientemente de la métrica que midan, tienden a tomarse como 'oro' cuando, de hecho, son medidas derivadas e inventadas que se ven directamente afectadas por fuerzas externas que a menudo no se miden ni se entienden.

En términos más simples en un entorno de fabricación, si sé que una máquina determinada puede producir 1000 widgets en una hora, esa es una medida concreta y discreta. Hay 1000 tareas repetibles que son exactamente como la tarea anterior. Cada uno un duplicado de los demás.

La conclusión es que el desarrollo de software nunca ha sido una duplicación y replicación exacta de tareas anteriores. Cada tarea, requisito, desarrollador, recurso de control de calidad; casi todos los aspectos varían de una tarea a otra. Tratar las métricas como "talladas en piedra" es como comparar manzanas con naranjas.

Se presentaron los objetivos de la empresa. Tienen sentido y yo estoy detrás de ellos. Pero, sí, la cuestión de cómo se va a utilizar esta información no se explicó y es una preocupación. Buscaré claridad sobre el punto con la alta dirección. Tus puntos son bien recibidos. ¡Gracias!