Para una empresa o departamento de desarrollo de software, ¿cuáles son las medidas clave (KPI si lo desea) que casi todas las organizaciones de desarrollo de software deben rastrear? Estoy tratando de determinar si hay medidas comunes que todas las organizaciones de desarrollo de software deben rastrear.

En el lado de la producción, obtenemos inteligencia útil al rastrear: tamaño relativo , tiempo estimado para completar y tiempo real para completar .

El desarrollo de software es complicado. Necesita una medida objetiva para cosas como “calidad del desarrollador”, “cantidad de trabajo completado” y “cantidad de trabajo restante”.

Mediciones sencillas como “líneas de código escritas” u “horas trabajadas” no le dicen mucho. Un gran desarrollador escribe muchas menos líneas de código para completar tareas. Los grandes desarrolladores también crean cosas significativamente más rápido, algunos estiman hasta 10 veces más rápido que los desarrolladores promedio.

El “punto de la historia”
Hay pruebas convincentes de que las personas son bastante malas en la medición absoluta y bastante precisas con la medición relativa. Preguntarle a un programador “cuánto tiempo llevará esto” casi siempre lleva a estimaciones pobres. Se obtiene una visión más confiable preguntando “¿Qué tan difícil es esto, en comparación con eso? ¿La mitad de difícil? ¿Dos veces más difícil? ¿Un poco más difícil que esto y un poco más fácil que eso?”

Las mejores métricas que he visto hasta ahora provienen de dividir proyectos en tareas pequeñas y bastante bien definidas. Una vez que tiene una lista de tareas pequeñas, es bastante fácil, con un poco de discusión en equipo, estimar los tamaños de cada pariente con respecto al resto utilizando “puntos de historia”. Los puntos de la historia no son estimaciones de horas. Son un tamaño de tarea arbitrario y sin unidades que se utiliza para comparar. Por ejemplo, una tarea realmente fácil es 1 punto. Una tarea que es el doble de difícil es de 2 puntos. Una tarea de 5 puntos es la mitad de una tarea de 10 puntos, etc.

Una vez que haya resuelto los puntos para todos los artículos, su equipo comenzará a trabajar en la lista. Solo necesita medir la cantidad de tiempo que el equipo trabaja, en conjunto, aproximadamente cada semana, y sumar los puntos para todos los elementos que terminaron esa misma semana. Eso produce su “velocidad” o puntos por hora.

La velocidad es la clave
Una vez que tenga la velocidad de su equipo, el número promedio de puntos por hora para el equipo, puede:

  • calcule cuánto trabajo le queda: si comenzó con 300 puntos y el equipo ha completado 90 puntos en tres semanas (promedio de 30 / semana), probablemente le quedan alrededor de 7 semanas para completar (300 – 90 = 210/30 = 7).
  • predecir cuánto tiempo tomarán las cosas, a medida que evalúa nuevas características y planifica versiones y niveles de personal
  • medir la productividad individual del desarrollador

La respuesta de Harald Kraemer sobre “conversión y personas alcanzadas” es excelente en el lado de marketing y adquisición de usuarios.

No hay KPI universales, dependen en primer lugar del proceso de desarrollo utilizado. Después de todo, no estamos rastreando los KPI por su propio bien, lo hacemos para obtener información sobre el progreso y el potencial de mejora de nuestros proyectos.

Para demostrar en base a dos extremos, está el proceso de software del Equipo que se basa en el seguimiento preciso de dos docenas de KPI, y está Scrum (desarrollo de software) que se maneja más o menos solo en base a gráficos de carga (Scrum, por supuesto, tiene más artefactos, pero ninguno de ellos tienen características KPI).

El seguimiento de los KPI de TSP en un mundo scrum es un desperdicio de recursos. Todo lo que se puede aprender se aprenderá en retrospectiva en un mundo scrum, el mecanismo principal de retroalimentación es la competencia del equipo. Por el contrario, si omite algunas mediciones en un entorno TSP puro, los datos ya no se pueden interpretar de manera confiable y no existe otro mecanismo de retroalimentación institucionalizado.

Cuando se trata de procesos de desarrollo, no existe “la única forma” de hacerlo objetivamente “bien”, “bien” depende del contexto. Debe comprender profundamente su proyecto y las metodologías candidatas para definir los KPI que le brindan en su contexto una sensación confiable de progreso y potencial de mejora.

Por ejemplo, personalmente me gusta Scrum (ver, por ejemplo, la respuesta de Josef Dietl a ¿Por qué deberíamos usar Scrum para entregar proyectos con éxito?), Pero sé que el 50% de los desarrolladores son más o menos insociables. Para los equipos más del lado antropofóbico, PSP / TSP puede ser una alternativa.

Del mismo modo, no construiría una red social con PSP / TSP, pero tampoco construiría la lógica de control para una planta de energía nuclear con scrum.

Dada la amplitud de esta pregunta: Conversión y personas alcanzadas. Todo lo demás es solo una mirada más detallada a estos dos.

Las personas contactadas son personas que escuchan sobre su producto. El marketing hace mucho trabajo aquí. La conversión describe la probabilidad de que una persona alcanzada le dé dinero. Ambos en combinación definieron sus ingresos.

Casi todo es solo una mirada más detallada a esto. Estamos monitoreando servidores, por lo que sabemos si un servidor está llegando a sus límites, porque un servidor en sus límites proporcionará una experiencia de juego mediocre, lo que hace que sea menos probable que alguien nos pague. Tenemos servidores en todo el mundo para reducir la latencia monitoreada para aumentar la experiencia de juego y aumentar las posibilidades de que alguien nos pague. Y todos estos son solo valores técnicos, nuestros tipos no tecnológicos tienen su propia lata de gusanos para mirar.

More Interesting

¿Existe un estándar para las tendencias actuales de soporte para varios navegadores?

¿Cuál es el mejor proveedor de alojamiento web para micrositios de alto perfil y alto tráfico para una startup?

Cómo hacer que mi sitio web en línea (página web del resort) sea popular de una manera simple

¿Hay alguna manera de hacer un contador web solo con JavaScript del lado del cliente?

¿Cuál es la mejor manera de mantener una lista de usuarios en línea en una aplicación web?

¿Se considera una aplicación grande una aplicación de formulario web ASP.NET que consta de 37 servicios web, varios cientos de proyectos y una base de datos de más de 500 tablas?

¿Cuál es el costo inicial de una empresa / inicio de diseño / desarrollo web?

¿Qué puede sugerirme para mejorar mi UX / UI web?

¿Cómo integramos a la perfección los patrones de MVC front-end con las tecnologías del lado del servidor?

Cómo incluir silenciosamente Node.js en nuestro sistema usando la arquitectura LAMP

Al escribir una aplicación web, ¿trabaja de abajo hacia arriba o de arriba hacia abajo con respecto al soporte del navegador?

¿Cuáles son los diversos pasos tomados por RBI para controlar la inflación recientemente? ¿Qué otras medidas puede tomar?

¿Cuántos usuarios concurrentes admitirá un sitio web estándar en un plan de alojamiento estándar basado en si se trata de un servidor Unix, Linux o Windows que se ejecuta en el servidor?

¿Cuál es el ancho de la página web receptiva para una pantalla de 15,6 pulgadas?

¿Cuáles son los idiomas para el desarrollador junior front end?