¿Qué es la productividad del software?
En realidad es bastante sencillo: la productividad es simplemente... producción a lo largo del tiempo.
La parte complicada, sin embargo, es encontrar una medida adecuada para los resultados. Los resultados, al menos en el contexto del software, son difíciles de estandarizar. En la mayoría de los casos, podemos pensar en estos resultados en términos de valor comercial y/o de cómo ofrecemos capacidades reconocibles para el usuario.
¿Por qué tantas empresas quieren medir la productividad del software? ¿Es realmente tan importante?
En cualquier proyecto de software, los gerentes tienen el deber de buscar cuantificación y cierto grado de certeza sobre el costo, el cronograma y el alcance. También buscarán medios y medidas para…
- …punto de referencia frente a otras organizaciones
- …seguimiento del progreso a lo largo del tiempo
- …evaluar la productividad individual y del equipo
- …utilizar la productividad para determinar las decisiones de deslocalización
- …utilizar la productividad para fundamentar las decisiones de priorización
Medidas generales de productividad
Tendemos a centrarnos principalmente en la productividad de los desarrolladores, ya que estos suelen ser los miembros más activos y más costosos de un proyecto de software. Sin embargo, también resulta útil comprender la productividad de los demás, incluidos los evaluadores, analistas, gerentes de proyectos, diseñadores, arquitectos y cualquier otra persona que contribuya al éxito de estos proyectos.
Criterios de una buena métrica de productividad de software
Lamentablemente, no existe una métrica perfecta para medir el “resultado” del trabajo de software. Por lo tanto, tenemos que encontrar indicadores alternativos que nos acerquen a cuantificar el resultado.
Idealmente, para el software, queremos una "métrica de salida" que logre lo siguiente:
- Se correlaciona fuertemente con el valor del negocio.
- es infalible, además de consistente, objetivo, repetible y verificable de forma independiente
- Es independiente y funciona independientemente del lenguaje de programación.
- es válido para comparar un proyecto con otro
- puede dar cuenta del trabajo más complejo que se asigna a miembros más capaces del equipo
- Se puede recolectar de forma barata y sencilla.
Como nota al margen, las métricas ideales para la productividad individual varían ligeramente de aquellas ideales para determinar la productividad del equipo. Utilice la que funcione mejor para su situación.
Clasificación de métricas de software
La siguiente tabla fue elaborada por Steve McConnell y se analiza en esta presentación. para clasificar las métricas de productividad de software adecuadas. Los puntos de función COSMIC eran menos conocidos y el dimensionamiento automático no estaba disponible cuando Steve creó esta tabla por primera vez. Hemos agregado la columna para los puntos de función COSMIC aquí. Esta columna adicional es subjetiva y, en nuestra opinión, no forma parte de la evaluación original de Steve.
LOC/SM
|
FP/SM
|
PPC/SM
|
Puntos de historia/SM
|
Revisiones de pares 360
|
Evaluación del Gerente
|
Previsibilidad de finalización de tareas
|
Casos de prueba aprobados
|
Tasas de defectos
|
|
---|---|---|---|---|---|---|---|---|---|
La medición refleja verdaderamente la productividad | 3 | 4 | 4 | 4 | 3 | 2 | 1 | 4 | 3 |
Representa directa o indirectamente toda o la mayor parte de la producción laboral. | 4 | 4 | 4 | 5 | 5 | 5 | 2 | 4 | 3 |
Útil para medir el trabajo de no programadores. | 1 | 4 | 4 | 4 | 5 | 5 | 5 | 4 | 4 |
Se resiste al "juego" de los contribuyentes individuales. | 2 | 5 | 5 | 4 | 3 | 3 | 4 | 4 | 5 |
Fuertemente correlacionado con el valor del negocio. | 2 | 3 | 4 | 4 | 3 | 4 | 2 | 4 | 3 |
Objetivo, verificable independientemente | 4 | 4 | 5 | 3 | 2 | 2 | 4 | 4 | 4 |
Las medidas generan el mismo resultado independientemente del lenguaje de programación utilizado. | 1 | 5 | 5 | 3 | 5 | 5 | 5 | 5 | 5 |
Admite comparaciones persona a persona dentro de un equipo | 3 | 4 | 4 | 4 | 5 | 4 | 4 | 4 | 4 |
Cuentas para las mejores personas que obtienen las tareas más difíciles | 2 | 4 | 5 | 4 | 5 | 5 | 1 | 5 | 2 |
Los datos se pueden recopilar de forma fácil y económica | 3 | 1 | 5 | 3 | 3 | 4 | 3 | 3 | 4 |
25 | 38 | 45 | 38 | 39 | 39 | 31 | 41 | 37 | |
Rango | 9 | 5 | 1 | 5 | 3 | 3 | 8 | 2 | 7 |
En la evaluación original de Steve, la conclusión fue que había una competencia reñida entre varios enfoques, y que el primero era “casos de prueba aprobados”. Ahora, con la llegada de un enfoque más simple para el dimensionamiento funcional (puntos de función COSMIC frente a puntos de función IFPUG) y el dimensionamiento automatizado, parece haber una métrica líder clara para evaluar la productividad: Puntos de Función CÓSMICA.
Medidas de productividad engañosas
Si bien no existe una única métrica perfecta para el trabajo de software, algunas son más útiles que otras. Existen algunas métricas que pueden inducir a error, ser objeto de abuso o incitar a un comportamiento poco útil.
Líneas de código (LOC)
Los desarrolladores pueden variar enormemente en las líneas de código escritas para una determinada funcionalidad. Es fácil de medir, pero no necesariamente bien medir, ya que los distintos lenguajes de programación requieren distintas cantidades de código y las variaciones entre ellos pueden ser enormes. El uso de líneas de código como medida también puede alentar a los desarrolladores a escribir líneas superfluas simplemente para aumentar su productividad. Esto tiene un efecto contraintuitivo, ya que puede generar costos de mantenimiento adicionales.
Puntos de la historia
Los puntos de historia son un indicador subjetivo y no estándar para la estimación del esfuerzo. Algunos afirmarán que miden la complejidad; la realidad es que, en el mejor de los casos, podría dan una indicación de la dificultad de una tarea en particular. En esencia, son una indicación de los días “ideales” para el personal. No son adecuados para el trabajo por contrato y no se pueden utilizar para comparar un equipo con el siguiente ni un proyecto con el siguiente. No se puede lograr aprendizaje ni mejora continua mediante la adopción de puntos de historia.
La historia cuenta
El tamaño de las historias de usuario también puede variar significativamente. Una historia puede ser una tarea técnica de diez minutos para una persona, mientras que otra puede requerir un mes entero de trabajo para todo un equipo. En nuestra experiencia, las historias varían de 0 CFP a 120 CFP, lo que hace que el recuento sea una métrica inconsistente.
Otras medidas de productividad del equipo
La evaluación de la productividad basada en tarjetas de puntuación puede ser útil en algunas circunstancias, especialmente si los valores de las tarjetas están normalizados para todos los equipos y se eligen para reflejar todos los criterios que la organización desea utilizar.
Es importante elegir criterios que se centren en los valores de la organización (de calidad y resultados). También es importante alinear los equipos con los verdaderos objetivos del negocio.
El ganador: puntos de función COSMIC
Nuestra medida de salida recomendada es Puntos de función COSMIC (CFP). He aquí el por qué:
- CFP Tiene sus raíces en Principios fundamentales del comportamiento del software (entradas, salidas, lecturas y escrituras).
- CFP está centrado en el usuario; Se alinea con lo que se necesita Entregar valor al usuario.
- CFP es un indicador razonable de Valor comercial.
- CFP se alinea bien a esfuerzo real.
- CFP tiene una definición para un unidad individual de tamaño.
- CFP proporciona una Medida de tamaño, que es el factor más importante para determinar costo y duración de un proyecto.
- CFP permite a los gerentes gestionar actividades no relacionadas con el desarrollo, con CFP como Métrica base.
- El CFP es Abierto, libre e independiente.
- CFP son adecuados para requisitos incompletos (es decir ágil).
- CFP son adecuados para casi cualquier tipo de software.
- CFP La estimación inicial es Casi completamente automatizado (por ScopeMaster, por supuesto).
La medición de la productividad del desarrollo de software es la actividad de registrar las métricas y atributos de un esfuerzo de software con fines comparativos.
¿Qué tan productivos son nuestros desarrolladores de software?
¿Quiere saber si su equipo es más productivo que otros equipos o que las normas de la industria?
Puedes comparar las actividades de un equipo con las de otro dentro de una organización, lo cual es evaluación comparativa internaLa comparación con otra organización similar se denomina evaluación comparativa externa. Aunque los puntos de referencia de la industria pueden ser interesantes, los puntos de referencia locales e internos generalmente se consideran los más confiables.
Evaluación comparativa de la productividad del desarrollo de software y evaluación de su equipo
Si tienes un gran equipo, ¿por qué no publicas tu índice de productividad? Podría ayudarte a conseguir trabajo de desarrollo. Todo lo que necesitas es un conjunto de historias de usuario de un proyecto anterior, aproximadamente una hora y acceso a ScopeMaster.
- Tome un conjunto de requisitos de un proyecto reciente. Súbalos a ScopeMaster y deje que el analizador calcule el tamaño.
- Para la calculadora de productividad, ingrese el esfuerzo total del proyecto (en días personales), la duración del proyecto (en meses) y la eliminación de defectos que finalmente logró en el proyecto.
- ScopeMaster determinará entonces el índice de productividad de tu equipo.
…¡Y eso es todo!
Si su clasificación es superior a la media (aproximadamente seis en el índice), entonces estás en el camino a la grandeza. Si lo deseas, ¡incluso podemos publicar el índice de productividad de tu equipo en nuestra tabla de clasificación!
Recuerde: tenga cuidado con las métricas engañosas. SLos puntos históricos, las líneas de código, los tamaños de camisetas y los días-hombre son técnicas manipulables y fáciles de manipular para calcular el tiempo y el esfuerzo. Utilice los métodos de dimensionamiento funcionales estándar ISO para obtener los mejores resultados.