miércoles, 26 de noviembre de 2008

METRICAS

Una métrica es una medida efectuada sobre algún aspecto del sistema en desarrollo o del proceso empleado que permite, previa comparación con unos valores (medidas) de referencia, obtener conclusiones sobre el aspecto medido con el fin de adoptar las decisiones necesarias. Con esta definición, la definición y aplicación de una métrica no es un objetivo en sí mismo sino un medio para controlar el desarrollo de un sistema de software.
  • COMO MEDIR METRICAS:


A diferencia de un test de usuarios, para medir las métricas es necesario tener una representación de usuarios algo mayor. Si para un test de usabilidad con 5 ó 6 usuarios es suficiente, para la medición de métricas es aconsejable contar con al menos unos 20 usuarios para obtener unos resultados más o menos fiables. Antes de empezar debes tener en cuenta al menos, lo siguiente: Define las tareas que los usuarios van a realizar. Éstas deben ser cuidadosamente seleccionadas y deben corresponderse con aquellos procesos que desees mejorar o sean críticos para el éxito de tu negocio. Lo normal es centrase en aquellas tareas más críticas o complejas y que requieren de cierto tiempo y dificultad para completarlas. Establece los objetivos para las tareas que hayas seleccionado. Es decir, qué objetivo concreto debe alcanzar el usuario para considerar que ha completado la tarea con éxito. Define las variables que vas a medir y diseña los cuestionarios de satisfacción. Planifica cómo vas a recoger los datos: existen herramientas como Morae que te permiten recabar estos datos de manera casi automática y explotarlos de forma personalizada. Si no tienes acceso a alguna herramienta de este tipo puedes hacerlo de forma manual, cronometrando los tiempos y recogiendo los datos en alguna plantilla diseñada para tal fin. Existen un par de plantillas que te pueden ayudar a empezar: Datalogger es una plantilla Excel que permite recoger y analizar este tipo de datos, entre otros. Otra un poco más antigua, pero también válida, es SUM Calculator.

  • USO DE LAS METRICAS:


El proceso de planificación del desarrollo de cualquier sistema debe hacerse partiendo de una estimación del trabajo a realizar. Sólo a partir de ello es factible conocer los recursos necesarios y el tiempo necesario para su realización. Una métrica es una medida efectuada sobre algún aspecto del sistema en desarrollo o del proceso empleado que permite, previa comparación con unos valores (medidas) de referencia, obtener conclusiones sobre el aspecto medido con el fin de adoptar las decisiones necesarias. Con esta definición, la definición y aplicación de una métrica no es un objetivo en sí mismo sino un medio para controlar el desarrollo de un sistema de software.

TIPOS DE METRICAS

  • DE USUABILIDAD:
Al evaluar la usabilidad de una interfaz muchas veces oímos (o leemos) esa frase que dice “Hay que contar con las opiniones de los usuarios para adecuar la aplicación a sus necesidades”. Sí, pero con matices importantes. Es cierto que hay que escuchar sus opiniones, pero más importante es saber interpretarlas adecuadamente. Haciendo caso solo de todas las opiniones de los usuarios NO resolveremos todos los problemas. La principal tarea del experto en usabilidad es detectar también aquellos problemas que están implícitos en los comentarios y en el uso . Éstos, la mayoría de veces no se expresan de forma verbal. Una forma de detectar parte de éstos problemas es a través de la medición de métricas. ¿Qué son las métricas de usabilidad? Podríamos definirlas como aquellos criterios o variables que son medibles de forma objetiva. Mientras que la interpretación de una opinión es un análisis cualitativo o subjetivo por parte del experto, la interpretación de datos objetivos responde a un análisis cuantitativo. Este tipo de variables se estructuran, como norma general, en tres grandes grupos: Efectividad: variables que nos permiten medir la exactitud y la plenitud con la que se alcanzan los objetivos de una tarea concreta. Algunas de las variables más típicas son: Porcentaje total de tareas completadas. Porcentaje de tareas completadas en el primer intento. Porcentaje de usuarios que completan las tareas. Ratio de éxitos y fracasos. Número de veces que los usuarios solicitan ayuda por no saber que hacer. Eficiencia: se refiere al esfuerzo que un usuario tiene que hacer para conseguir un objetivo. Algunas variables típicas son: Tiempo empleado en completar cada tarea. Porcentaje o número de errores cometidos. Porcentaje de errores o problemas según su severidad. Tiempo empleado en recuperarse de los errores. Número de clicks realizados para completar una tarea. Número de páginas visitadas para completar una tarea. Tiempo empleado en determinadas páginas o grupos de páginas. Porcentaje o número de veces que se acude a ayudas, FAQ o similar. Satisfacción: se refiere a aquellas que tienen que ver más con lo emocional o subjetivo. Para medir el grado de satisfacción puedes utilizar criterios como: Porcentaje de usuarios que después de utilizar el producto lo recomendaría a un amigo. Proporción de adjetivos positivos o negativos que cada usuario de al producto. Porcentaje de usuarios que califican el producto más fácil de usar que cualquiera de la competencia directa. Número de veces que el usuario expresa satisfacción o insatisfacción. Además de las reflejadas aquí, es posible crear cualquier otra métrica que resulte de utilidad. Por ejemplo, puedes medir el porcentaje de incremento de ventas que tienes antes y después de hacer un rediseño.
  • DE CALIDAD:

El concepto de métrica es el termino que describe muchos y muy variados casos de medición. Siendo una métrica una medida estadística (no cuantitativa como en otras disciplinas ejemplo física) que se aplica a todos los aspectos de calidad de software, los cuales deben ser medidos desde diferentes puntos de vista como el análisis, construcción, funcional, documentación, métodos, proceso, usuario, entre otros.El concepto de métrica es el termino que describe muchos y muy variados casos de medición. Siendo una métrica una medida estadística (no cuantitativa como en otras disciplinas ejemplo física) que se aplica a todos los aspectos de calidad de software, los cuales deben ser medidos desde diferentes puntos de vista como el análisis, construcción, funcional, documentación, métodos, proceso, usuario, entre otros.

  • DE PUNTO DE FUNCION DE ALBRECHT:

Miden la aplicación desde una perspectiva del usuario dejando de lado los detalles de codificación, estos evalúan con fiabilidad.

El valor comercial de un sistema para el usuario.
Tamaño del proyecto, costo y tiempo de desarrollo.
Calidad y productividad del programados.
Esfuerzo de adaptación, modificación y mantenimiento.
Posibilidad de desarrollo propio.
Beneficios de implementación en 4GL.

  • METRICAS DE MANTENIBILIDAD DEL SOFTWARE:


Las métricas de mantenibilidad no pueden medir el coste de realizar un cambio particular al sistema software, sino que miden aspectos de la complejidad y la calidad de los programas ya que existe una alta correlación entre la complejidad y la mantenibilidad (a mayor complejidad menor mantenibilidad) y entre la calidad y la mantenibilidad (a mayor calidad mayor mantenibilidad – y viceversa – ).
Existen maneras de medir la mantenibilidad para todos los elementos software que están o estarán sometidos a mantenimiento: código, documentos de usuario, documentos de análisis o diseño, etc.
Las métricas del software se pueden clasificar en tres categories (vease (Kan1, 2002)):
Métricas de producto. Estas métricas describen las características del producto que de alguna forma determinan la mantenibilidad, por ejemplo el tamaño, complejidad o características del diseño.
Métricas del proceso. Las métricas del proceso pueden ser utilizadas para mejorar el desarrollo y mantenibilidad del software. Algunos ejemplos incluyen la eficacia de eliminar defectos durante el desarrollo, el patrón en el que aparecen los defectos durante las pruebas o el tiempo fijo de respuesta del proceso.
Métricas de proyecto. Las métricas de proyecto describen las características y ejecución del proyecto. Por ejemplo, el número de desarrolladores, el patrón de staffing en el ciclo de vida, coste, planificación y productividad del software.