• No se han encontrado resultados

Asistencia para la toma de decisiones

 

Las métricas permiten conocer lo que está sucediendo para tomar acciones adecuadas        y ajustarse a las necesidades que se están atendiendo. Pero si no se toman decisiones en        función de las métricas, haberlas recolectado sería un esfuerzo innecesario.       Tesys  provee una     herramienta que utiliza la información obtenida mediantes las técnicas previamente        mencionadas para poder estimar el rendimiento de los desarrolladores en tareas futuras. 

La estimaciones que     Tesys realiza son capaces de proporcionar información adicional        sobre cómo un desarrollador va a llevar a cabo una determinada tarea. Dichas estimaciones se        basan en la técnica estadística de regresión lineal (Cohen, et al., 2003) la cual requiere un        conocimiento a priori de qué datos están correlacionados entre sí (Cohen, et al. 2002) y su        respectiva función de regresión. Luego, si se conoce una correlación entre dos métricas,        mediante la función de regresión se puede estimar el valor de una métrica a partir del valor de        la otra con un margen de error que dependerá de cuan fuerte es el grado de correlación entre        esas dos métricas. Actualmente       Tesys  cuenta con la capacidad de llevar a cabo análisis de       correlaciones lineales mediante el cálculo del coeficiente de correlación de       Pearson (Pearson,  1895). Dado que las correlaciones lineales son las más comunes que se encuentran entre las        métricas y los datos cuantitativos son los más comunes que se encuentran en las herramientas        de desarrollo. 

 

Por lo general las correlaciones no son globales a un proyecto de software, sino que        varían en función de los desarrolladores. Es importante tener en cuenta que no todos los        desarrolladores poseen las mismas características y las conclusiones que se puedan sacar        observando un grupo seguramente no apliquen para todos los individuos. Incluso, un individuo        en particular podría evolucionar en el tiempo. Por ese motivo, se decidió calcular las        correlaciones entre la métricas dentro del contexto de un desarrollador, esto quiere decir que        Tesys analizará todas las tareas de un desarrollador en particular obteniendo sus métricas y        calculado la correlación entre ellas, luego todos los cálculos comenzarán de cero al analizar a        un nuevo desarrollador ya que no es válido asumir que las relaciones entre métricas serán las        mismas. A modo de ejemplo, en la Tabla 3.8, se puede observar una muestra de tareas        realizadas con sus respectivas métricas, y luego, en la Tabla 3.9, se muestra el resultado del        cálculo de las correlaciones lineales de dichas métricas por cada desarrollador.                 

 

Desarrollador  Tarea  Líneas  Rendimiento (%)  Tiempo (hs) 

Christina B.  ANGRY­55  333  93  6,0  Christina B.  ANGRY­87  59  15  2,5  Christina B.  ANGRY­30  62  23  1,3  Christina B.  ANGRY­54  88  54  2,0  Joe C.  ANGRY­47  86  37  1,6  Joe C.  ANGRY­75  10  9  2,0  Joe C.  ANGRY­38  68  15  1,4  Joe C.  ANGRY­6  70  49  1,4  Joe C.  ANGRY­15  51  31  1,0  Joe C.  ANGRY­11  250  88  5,5  Tabla 3.8: Ejemplo de datos con los que cuenta el sistema previo al análisis de  estimaciones.   

Desarrollador  Líneas & Rendimiento   Rendimiento & Tiempo  Líneas & Tiempo 

Christina B.  0,9222  0,8442  0,9672 

Joe C.  0,9222  0,7966  0,9027 

Tabla 3.9: Ejemplo de correlaciones calculadas.   

Una vez calculadas las correlaciones se puede saber la precisión de una regresión        lineal. Tesys brinda la posibilidad al PM de indicar los rangos de correlación aceptables. De        este modo se usarán para las estimaciones, solo las regresiones lineales de los pares de        métricas en los que su correlación se encuentre en el rango aceptable. La Figura 3.8 muestra        las regresiones lineales que surgen de la Tabla 3.8. 

 

  Figura 3.8: Ejemplo de regresiones lineales de las métricas correlacionadas. 

 

Una vez que el sistema realiza todos los cálculos descritos previamente ya es capaz de        realizar estimaciones cuando se le brinda la información sobre la tarea que debe estimarse. La        información que   Tesys requiere para poder realizar una estimación no tiene ninguna regla        particular, con solo proporcionar el valor de una métrica ya se pueden obtener estimaciones.        Sin embargo, cuando se requiere mayor precisión en la estimación es necesario proveer la        mayor cantidad de información detallada sobre cómo será la tarea a desarrollar. Esta        información que debe ser proporcionada, es habitual que no exista y que no se conozca con        certeza. El PM debe ser capaz de poder estimar algún atributo de la tarea a realizar. Las       

estimaciones que el sistema lleve a cabo están fuertemente relacionadas a las que se le        suministraron y si se hace de manera incorrecta, se puede esperar lo mismo por parte de        Tesys

 

Contar con este tipo de soporte para estimar tareas tiene dos beneficios. Por un lado si        la persona que realiza las estimaciones está involucrada en el proceso de desarrollo y tiene        conocimiento del producto de se está desarrollando, es posible que pueda estimar        determinadas métricas de la tarea a realizar con más facilidad que otras. Estas métricas que le        son más fáciles de estimar pueden no ser un factor decisivo para la toma de decisiones, sin        embargo son muy útiles para que       Tesys  pueda estimar otras métricas que sí lo sean. Si la       persona que utiliza     Tesys no puede estimar ningún valor, existe la posibilidad de hacer una        encuesta a todos los desarrolladores para obtener información de cuánto estima cada uno que        le costara la tarea, en base a los datos que se obtengan se puede utilizar alguna medida de        tendencia central para obtener los datos que necesitan ser proporcionados a       Tesys . El otro      beneficio es que mediante los cálculos que son realizados por persona es posible encontrar        correlaciones entre métricas personales que a simple vista resultaría imposible y de esta forma        conocer mejor las características de cada desarrollador dentro del proceso de desarrollo. Un        ejemplo de las estimaciones que se realizan para la métrica       Tiempo  igual a tres horas se puede       ver en la Tabla 3.10. 

 

Desarrollador  Líneas  Incidencias 

Christina B.  138.55  46.96 

Joe C.  127.22  49.67 

Tabla 3.10: Ejemplo de estimaciones realizadas a partir de un Tiempo proporcionado.   

Si bien cada desarrollar se comporta de manera diferente a los demás y no puede        tomarse a todos para calcular las correlaciones, este problema también ocurre al nivel de una        misma persona. Es habitual que el rendimiento de un desarrollador sea mayor o menor        dependiendo de la tarea que se deba realizar. Un ejemplo claro es en base a la tecnología que        el mismo deba utilizar, si un desarrollador en       Java  de pronto debe realizar una tarea en        JavaScript no se puede esperar que el rendimiento sea el mismo. 

 

Estos problemas están considerados dentro del modelo de estimaciones de       Tesys  y se    solventan permitiendo filtrar las tareas con las que se realizarán los cálculos. Hasta el momento        se vio cómo se utilizan todas las tareas de un desarrollador para realizar una estimación, sin        embargo es posible utilizar las habilidades que la misma requirió para filtrar       qué tareas deben       ser tenidas en cuenta a la hora de realizar los cálculos. De este modo, si se quiere estimar una        tarea que es en código         Java, se filtra por la habilidad       Java . La cantidad de información que se        utiliza para calcular las correlaciones y regresiones va a disminuir lo que provoca menos datos        para analizar. Pero los datos utilizados para realizar los cálculos son los más parecidos a los        que la tarea futura va a poseer, de esta manera es posible lograr estimaciones más precisas.        Los resultados sobre la conveniencia de este tipo de filtros se analizarán en la sección de        Resultados obtenidos

 

Los ejemplos en esta sección fueron presentados de forma que se pueda apreciar el        funcionamiento interno de     Tesys. Sin embargo, la herramienta real presenta todas las        estimaciones que es capaz de obtener mediante el componente gráfico de la misma. Utilizar los        gráficos para mostrar este tipo de información tiene varias ventajas a mostrarla de forma cruda.        A continuación se detalla el funcionamiento del componente gráfico de Tesys