Mtricas de Software
1
Sabidura de Einstein
Objetivos
Conocer los conceptos vinculados a las mtricas de software. Comprender las dificultades asociadas a la medicin en el software. Conocer tcnicas para obtencin de mtricas de software Introducir el concepto de mtricas agiles
3
AGENDA
Introduccin Formalizacin de mtricas Mtricas de Software Mtricas giles
Definiciones
Medida
Proporciona una indicacin cuantitativa de la cantidad, dimensiones o tamao de algunos atributos de un producto o proceso
Medicin
Mtrica
Es una medida del grado en que un sistema, componente o proceso posee un atributo dado
Indicador
Es una mtrica o una combinacin de mtricas que proporcionan una visin profunda del proceso del software, del proyecto de software, o del producto en s.
Unidad
Definicin Una cantidad particular, definida y adoptada por convencin, con la que poder comparar otras cantidades de la misma clase para expresar sus magnitudes respecto a esa cantidad particular [ISO-15939] Relaciones Una unidad sirve para expresar una o varias mtricas cuyo tipo de escala sea intervalo o ratio. Ejemplos Kilmetros, metros, millas. Lneas de cdigo, Pginas, Persona-mes, Nmero de mdulos, Nmero de clases,... Dlares, Horas, das, Meses, Aos,...
8
Mtrica Directa
Definicin Una mtrica de la cual se pueden realizar mediciones sin depender de ninguna otra mtrica y cuya forma de medir es un mtodo de medicin. Relaciones La forma de medir una mtrica directa es un mtodo de medicin. Una mtrica directa puede ser utilizada en funciones de clculo. Ejemplos Lneas de cdigo fuente escritas Horas-programador diarias Costo por hora-programador, en unidades monetarias
9
Mtrica Indirecta
Definicin Una mtrica cuya forma de medir es una funcin de clculo, es decir, las mediciones de dicha mtrica utilizan las medidas obtenidas en mediciones de otras mtricas directas o indirectas. Relaciones La forma de medir una mtrica indirecta es una funcin de clculo. Una mtrica indirecta puede usarse en una funcin de clculo. Ejemplos Horas-programador totales Lneas de cdigo fuente por hora de programador Costo total actual del proyecto, en unidades monetarias Costo por lnea de cdigo fuente
10
Escala
Definicin Un conjunto de valores con propiedades definidas [ISO 14598-1] Relaciones Toda escala es de un cierto Tipo de Escala. Ejemplos Los valores que puede tomar la mtrica lenguaje de Programacin usado en un proyecto: Pascal, C, Java (Nominal). El nivel de madurez CMM: 1, 2, 3, 4, 5 (Ordinal). El tamao de un cdigo software expresado en lneas de cdigo: Conjunto de los nmeros naturales (Ratio). La temperatura expresada en grados centgrados o grados Fahrenheit (Intervalo). Ejemplos de tipo de Escala Nominal, Ordinal, Intervalo, Ratio y Absoluta
11
Escala Nominal
Categora, taxonoma, atributo Ejemplos: Fase del desarrollo Ciclo de vida Tipo de producto
12
Escala Ordinal
Ordinal: Define un orden o ranking No se asume intervalos equidistantes Ejemplo: Impacto de un cambio Sin impacto Leve Medio Alto Muy Alto
13
Escala Intervalo
Intervalo: designa un ordenamiento equidistante (la distancia entre los tems de la escala tiene un significado) Ejemplo: Temperatura
14
Escala Radio
Radio: designa intervalos equivalentes con un punto cero absoluto (i.e., el cero implica la ausencia del objeto de medicin) Ejemplo: lneas de cdigo
15
16
Validez
Grado en el cual la mtrica refleja el significado real del concepto que se observa.
17
17
Confiabilidad
Objetivo: mtricas sin errores (error-free) Es posible? Consistencia de un nmero de mediciones usando el mismo mtodo sobre el mismo fenmeno. Puede representarse con la desviacin estndar
18
19
20
Mtricas de software
El dominio de las mtricas del software se divide en:
Las mtricas del proyecto se consolidan para crear mtricas de proceso que sean pblicas para toda la organizacin del software.
21 21
Medidas directas ejemplo: la longitud de un tornillo Medidas indirectas ejemplo: la calidad de los tornillos producidos, medidos contando los artculos defectuosos Medidas directas del proceso: costo, esfuerzo Medidas directas del producto: las lneas de cdigo (LOC) producidas, velocidad de ejecucin, defectos informados.
22
Mtricas bsicas
23
Desarrollador
1. 2. 3. 4. 5.
Equipo de Desarrollo
1. 2.
Esfuerzo Esfuerzo y duracin estimada y actual de una tarea. % de cobertura por el unit test Numero y tipo de defectos encontrados en el unit test. Numero y tipo de defectos encontrados en revisin por pares.
Tamao del producto Duracin estimada y actual entre los hitos ms importantes. Niveles de staffing actuales y estimados. Numero de tareas planificadas y completadas. Distribucin del esfuerzo Status de requerimientos.
3. 4.
5. 6.
Organizacin
1. 2. 3. 4.
7.
8.
Volatilidad de requerimientos.
Numero de defectos encontrados en la integracin y el system testing Nmero de defectos encontrados en peer reviews. Status de distribucin de defectos. % de test ejecutados
9.
24
5.
Seleccionando Mtricas
Elegir mtricas que provean informacin para ayudar a responder preguntas
Sea prctico, realista, pragmtico Considere el ambiente de ingeniera actual Comience con lo posible
25
Estandarice Definiciones
Selecciones definiciones de la literatura que coincidan con las metas organizacionales Utilcelas como base para la creacin de sus propias definiciones.
Aplquelas consistentemente.
Incluya las definiciones en un apndice de cada reporte de mtricas.
26
Mantngalo Simple
Si ests a millas de distancia de tu destino no tiene sentido medir en milmetros.
Preguntas:
Nos da ms informacin que la que tenemos ahora? Es esta informacin de beneficio prctico? Nos dice lo que queremos saber?
27
Anlisis de Escenarios
Escenario 1 Schedule: 100% Effort: 75% Features: 80%
Anlisis de Escenarios
Escenario 3 Schedule: 75% Effort: 75% Features: 75%
PUNTOS CLAVES
30
Si
Provea feedback
Datos
31
31
No
Mida individuos
Calidad
Balancear
Alcance
Necesidades
Restricciones
Expectativas
Proceso
33
Mtricas giles
34
y nada ms.
35
Toda la informacin que necesitan para tomar decisiones, y no ms. Informacin al nivel de detalle que pueden usar. Informacin con el alcance que les interesa (equipo, proyecto, programa, lnea de negocio, empresa, industria) Informacin pertinente en el marco de tiempo que les interesa (da, iteracin, release, proyecto, estrategia, hito).
36
Nuestra mayor prioridad es satisfacer al cliente por medio de entregas tempranas y continuas de software valioso."
y El Software trabajando es la principal medida de progreso."
39
Running entregado en un producto Tested pruebas de aceptacin continuas, pasadas Features aspectos dados por el cliente
41
41
10
Features
RTF
Iteration
42
Informacional
Medida directa de los resultados entregados.
Diagnstico
Si es llano o disminuye en el tiempo, es un indicador de problema.
Motivacional
Los miembros del equipo naturalmente quieren ver un incremento en RTF.
44
45
Capacidad
Capacidad es...
Una estimacin de cuanto trabajo puede completarse en un perodo de tiempo dado. Basado en la cantidad de tiempo ideal disponible del equipo.
...Se puede medir en... Esfuerzo (horas) Puntos de Historia (Story Points)
46
Capacidad
Horas de Trabajo Disponibles por da (WH) X Das Disponibles Iteracin (DA) = Capacidad WH x DA = Capacidad Ejemplo:
Equipo de 8 miembros 4 miembros disponibles los 2 primeros sprints. 1 miembro se casa en sprints 5 y 6 6 horas de trabajo
47
Capacidad
Sprint Horas Puntos de Historia 1 240 30 2 240 30 3 480 45 4 480 60 5 420 58 6 420 52 7 480 60 Total 2760 335
Capacidad
600 500 400 300 200 100 0 1 2 3 4 5 6 7 240 240 480 480 420 420 480
48
Capacidad: consideraciones
Individuos calculan capacidad realista Aplicar estimaciones honestas a sus tareas Considerar una capacidad mxima de 50%-70% Comprender la capacidad a largo plazo con la velocidad y los puntos de historiaCul es el promedio de finalizacin de un punto de historia para un equipo/individuo?
50
50
Capacidad
Principio
Nuestra mayor prioridad es satisfacer al cliente con entregas tempranas y continuas de software valioso.
Informacional
Observacin emprica de la disponibilidad del equipo en lo que resta de un sprint. til para proyectar la fecha probable de un alcance dado. til para estimar la cantidad de alcance que puede ser entregado para una fecha dada.
Diagnstico
Patrones en las tendencias de la capacidad indican si el equipo podr cumplir con los compromisos.
Motivacional
51
Los miembros del equipo se enorgullecen de alcanzar los compromisos y cumplir con la capacidad proyectada.
Velocidad Velocidad es... Una observacin emprica de la capacidad del equipo para completar el trabajo por iteracin.
52
Velocidad
Velocidad est... Basada en el tamao de los tems de trabajo propio de cada equipo.
...y no est... basada en estimaciones o tiempo real determinado o impuesto por nadie ms que por los miembros del equipo.
53
Velocidad Velocidad es... Comparable entre iteraciones para un equipo dado y un proyecto dado.
Velocidad
56
Velocidad
Principio
Nuestra mayor prioridad es satisfacer al cliente con entregas tempranas y continuas de software valioso.
Informacional
Observacin emprica de la capacidad de trabajo del equipo. til para proyectar la fecha probable de un alcance dado, til para estimar la cantidad de alcance que puede ser entregado para una fecha dada.
Diagnstico
Patrones en las tendencias de la velocidad indican problemas diferentes, proporciona una base para los esfuerzos de mejora continua
Motivacional
58
Los miembros del equipo se enorgullecen de lograr una alta velocidad y mantenerla estable
60
61
700
600
500
Remaining Story Points Completed Story Points Cumulative Linear Regression for Completed Story Points Cumulative Total Story Points (Scope) Linear Regression for Total Story Points (Scope)
400
300
200
100
0 Iteration 1 Iteration 3 Iteration 5 Iteration 7 Iteration 9 Iteration 11 Iteration 13 Iteration 15 Iteration 0 Iteration 2 Iteration 4 Iteration 6 Iteration 8 Iteration 10 Iteration 12 Iteration 14
62
Burn Charts
Principio
Nuestra mayor prioridad es satisfacer al cliente con entregas tempranas y continuas de software valioso.
Informacional
Medida directo de trabajo restante; fechas de finalizacin proyectada; impacto de cambio de alcance en el cronograma.
Diagnstico
Indica si el cambio de alcance o la performance del equipo es la causa de la variacin en el cronograma.
Motivacional
64
Los miembros del equipo estn motivados para ver claramente cuando es probable que se termine el proyecto y ver la cantidad de trabajo que viene reducindose.
Mediciones Problemticas
No relevantes con los mtodos giles: Diagrama de Gantt Porcentaje Completado
Mejores Prcticas
66
No producir mtricas que nadie quiere. Ser honesto a cerca del uso de las mtricas. No usar mtricas para comparar equipos. Use las mtricas como base para la discusin No desmoralizar al equipo con mtricas. Tomar en cuenta el estado cuando elegs las mtricas. No seleccionar mtricas difciles de obtener. Mtricas diferentes para productos y procesos.
Mejores Prcticas
67
Medir resultados no salidas. Medir resultados no actividades. Medir tems de trabajo hechos, no tiempo gastado por tarea. Seguir tendencias no nmeros. No medir algo slo porque se puede. Utilice slo el conjunto de mtricas suficiente. Use mtricas fciles de recolectar. Comparta mtricas para obtener feedback.
Referencias
Pressman, Roger - INGENIERA DE SOFTWARE, UN ENFOQUE PRCTICO. (Editorial McGraw Hill Ao 2005) http://agile2009.agilealliance.org/files/session_pdfs/Rawsthorne_AgileMetrics_v6d .pdf Towards-Agile-Metrics.pdf http://www.slideshare.net/alimenkou/agile-metrics-2725666 http://www.davenicolette.net/agile http://www.davenicolette.net/taosoft AppropriateAgileMeasurement.pdf
68