Según el estudio realizado por Stein y Magne, en el artículo citado previamente, dos estimaciones de un experto sobre el mismo proyecto pueden variar con una media de hasta un setenta y uno por ciento, con una mediana del cincuenta por ciento. Un intento de minimizar la inconsistencia de las estimaciones de los expertos consiste en consultar a varios expertos. Leung y Fan, en el artículo mencionado en párrafos anteriores, mencionan que como ejemplos de técnicas de consenso entre expertos se encuentran Delphi y PERT. Por otro lado, los gestores de los proyectos software intentan maximizar la productividad y minimizar el costo, y así hacer coincidir las estimaciones con el objetivo fijado con el cliente. Por tanto, los expertos basan sus estimaciones en este manejo del presupuesto asociado a los proyectos anteriores de la compañía, con lo que su experiencia queda en entredicho. Los factores que manejan los expertos a la hora de realizar sus estimaciones no son muy conocidos. Por su parte el otro método consiste en el uso de analogías; la utilización de analogías a la hora de estimar el costo de desarrollo del software, consiste en comparar el nuevo proyecto a estimar con el costo real de los proyectos anteriores de la compañía. La comparación entre proyectos se puede hacer comparando el proyecto en su totalidad o por partes. Comparar los proyectos basándose en su descomposición tiene la ventaja de ser un proceso más detallado que si se comparan proyectos en su totalidad. Por el contrario, comparar los proyectos en su totalidad lleva implícita la ventaja de incluir todos los componentes relativos al costo, incluso los componentes de los que no se tiene constancia. La ventaja de este método radica en que las estimaciones se hacen con base en el costo real de los proyectos de la compañía. Esto implica que la compañía debe disponer de una cantidad suficiente de datos de proyectos anteriores. Aun así, no queda muy claro que proyectos anteriores sean representativos de los nuevos proyectos.
López y Dolado continúan mencionando que, por su parte los métodos de estimación algorítmicos realizan sus estimaciones de costo en función de un conjunto de variables y parámetros. Estas variables están consideradas como los principales factores de costo. Los diferentes métodos de estimación algorítmicos se diferencian tanto por los factores que emplean en su modelo, como por la forma de la función que utilizan. Dependiendo del tipo de fórmula matemática que utiliza un modelo, se puede clasificar en modelos lineales, multiplicativos o con función de rendimiento. Los métodos algorítmicos se dividen en dos grupos: analíticos y empíricos. Los métodos de estimación empíricos se basan en la experiencia a la hora de realizar una formulación matemática que modele el esfuerzo de desarrollo software. De manera especifica el método “Modelo de costo constructivo”, constituye un método de estimación algorítmico empírico. Este método fue ideado por Barry Boehm a principios de la década de los años ochenta del siglo veinte, en el libro titulado “Economía de la ingeniería del software”, este método se encuentra basado en el método de Walston y Felix, reportado en el artículo publicado el año 1977 con el título “Un método de medida de programación y estimación”.
El modelo de costo constructivo es un método de estimación basado en una función de rendimiento que contiene como elementos fundamentales el tamaño del código fuente medido en miles de líneas código, dos coeficientes dependientes de la complejidad del software y un multiplicador dependiente de quince factores. Los factores de costo se dividen en cuatro grupos: (1) Factores de producto, entre los cuales se cuentan la fiabilidad requerida, el tamaño de la base de datos y la complejidad del producto. (2) Factores de computación, entre los cuales resaltan las restricciones de tiempo de ejecución, restricciones de tiempo de almacenamiento, inestabilidad de la maquina virtual y tiempo de respuesta del equipo. (3) Factores de la plantilla, entre los que figuran la capacidad del analista, capacidad del programador, experiencia con la aplicación a desarrollar, con el lenguaje de desarrollo y la maquina virtual. (4) Factores del proyecto, entre los que figuran el plan de desarrollo requerido, las herramientas de desarrollo y el uso de prácticas modernas de programación.
No hay comentarios:
Publicar un comentario