- Resumen
- Descripción del
Problema - Aproximación
histórica al problema - Técnicas y
Metodología - Método de
Modelado - Conclusiones
- Referencias
Resumen
La estimación de plazos en proyectos es
una tarea crítica, que puede conducir al fracaso
del proyecto,
debido al alargamiento de la duración o a una mala
estimación del esfuerzo necesario para ejecutarlo. Es
necesario disponer de una herramienta que nos ayude a tener
más conocimiento
sobre el proyecto para seleccionar las variables
influyentes sobre las desviaciones del proyecto y que
proporcione unas estimaciones más ajustadas.
En este artículo se analizan la viabilidad y las
ventajas del desarrollo
de un sistema basado
en técnicas
de inteligencia
artificial capaz de seleccionar las variables que afectan a
la duración del proyecto y al esfuerzo necesario para
realizarlo a partir de un conjunto de datos
históricos, frente a las técnicas actuales.
Para ello, se propone un método
para el análisis de los datos existentes, y su
preprocesamiento para conseguir un modelo que
se ajuste a las necesidades del gerente de
proyectos.
Palabras clave: Estimación de Plazos y
Esfuerzo, Gestión de Proyectos, Minería
de Datos, Calidad,
Planificación.
Una de las fases en la gestión del proyecto
es la estimación del esfuerzo y plazo de cada una de
las actividades de las que constará, por lo tanto, es
necesario disponer de buena información sobre la duración y
el esfuerzo en personas-mes necesarias para realizar cada
tarea.Disponer de esa información facilitará
la gestión del proyecto tanto a nivel de costes como
de plazos, facilitando la distribución de recursos y
disminuyendo los riesgos o
zonas criticas.La información histórica, procedente
del cierre [9] de proyectos anteriores, proporcionará
la base de conocimiento sobre la que se podrán aplicar
las técnicas para extrapolar este conocimiento a
futuros proyectos.El control
del coste y su precisión a lo largo de la vida del
proyecto, y la recopilación de los datos
característicos de cada proyecto al finalizar
éste, producen un efecto de corrección continua
que permite fijar modelos
específicos que facilitarán la
planificación de los nuevos proyectos en todos los
aspectos: costes, plazos y recursos.Es necesario disponer de una herramienta que nos
ayude a tener más conocimiento del problema y permita
seleccionar las variables influyentes sobre las desviaciones
del proyecto y que proporcione unas estimaciones más
ajustadas.En este artículo se analiza el desarrollo de
un sistema basado en técnicas de inteligencia artificial capaz de seleccionar
las variables que afectan a la duración del proyecto y
al esfuerzo necesario para realizarlo a partir de un conjunto
de datos históricos.Para el desarrollo del sistema se utilizó un
conjunto de datos pertenecientes al International Software
Benchmarking
Standards Group,[1] recopilados a partir de la
información extraída de la ejecución de
más de 2000 proyectos. Estos datos contienen valores
numéricos y categóricos, existiendo un gran
porcentaje de valores perdidos. Por este motivo, los datos
fueron sometidos a un exhaustivo preprocesamiento y se
seleccionaron las técnicas de inteligencia artificial
que mejor se ajustaran a la condición de los
datos.Para desarrollar este articulo se comenzará
describiendo cual es el alcance del problema que se pretende
buscar solución. A continuación se
enumerará un resumen de las técnicas utilizadas
actualmente. Dado que se parte de un conjunto de datos
históricos de proyectos anteriores, se aplicará
una metodología de minería de datos.
Se describe la metodología CRISP DM [8] que es la que
se ha utilizado para este problema.Por ultimo se describe del método de modelado
y las conclusiones a las que se han llegado para solucionar
el problema planteado.- Introducción
La estimación del coste de un proyecto en
sistemas de
información, consiste en la aplicación de
una serie de técnicas y procedimientos que una organización utiliza para conocer con
adelanto el coste que conlleva el análisis,
desarrollo, implantación y pruebas
del sistema. La estimación precisa de los recursos y
tiempo
necesarios para el desarrollo de un proyecto, lo cual es
esencial para el perfecto desarrollo de cualquier proyecto,
pero más si cabe, en el sector informático, en
el que los presupuestos y plazos se superan con creces de
forma habitual, provocando en muchos casos el fracaso del
proyecto.La predicción lo más exacta posible de
los costes de un proyecto de sistema de
información es una actividad crítica a la
hora de tomar decisiones de gestión y determinar con
detalle el esfuerzo y la dedicación que el jefe de
proyecto, los analistas y programadores que se deberán
aplicar. Sin una capacidad razonable de estimación de
costes, los jefes de proyecto no podrán determinar
cuanto tiempo y recursos requiere el proyecto, lo cual
significa que éste está fuera de control desde
el principio. Los analistas no podrán hacer
análisis acertados durante las etapas de diseño, el personal del
proyecto no podrá decir a sus jefes y clientes
que sus plazos y presupuestos son irreales. Esto puede
conducir a falsos optimismos y los inevitables retrasos y
desviaciones.A pesar de que estamos hablando del término
"estimación de coste", en proyectos de sistemas
de información los
valores obtenidos no se suelen medir directamente en
unidades monetarias. Las estimaciones suelen ser
valoraciones, con un cierto error, del esfuerzo esperado para
el desarrollo del proyecto y de los plazos de tiempo
requeridos para completarlo.Este es un producto
sin existencia física propia y
cuyo coste principal reside en su desarrollo o diseño
(no en su fabricación o replicación a partir de
la primera copia), es lógico que se asuma que el coste
de su producción está dominado por los
gastos de
personal, midiéndose en personas-mes o
personas-año.La estimación en los proyectos de sistemas de
información presenta dificultades particulares ya que
los productos
que generan no se producen una y otra vez, al contrario, es
habitual desarrollar un nuevo producto cada vez, empleando
distintas técnicas y herramientas. La estimación en el
software es, por ello, más inexacta, aunque no
imposible. De hecho, otros sectores sufren problemas
graves de estimación de costes cuando se enfrentan a
nuevos productos o hay que emplear nuevas
técnicas.Existen además, otras razones que dificultan
la estimación de proyectos, entre ellas las presiones
en la empresa
(para disminuir el coste o los plazos necesarios) y el hecho
de que existe una carencia generalizada de datos sobre
proyectos terminados (tamaño del software, costes,
productividad, etc.) que podrían guiar
a los profesionales a la hora de realizar
estimaciones.Todos los métodos actuales dependen de la
cantidad de información disponible. A medida que se
avanza en el proyecto, se obtiene una mayor cantidad de
detalles y de información más fiable, por lo
que la precisión de la estimación mejora
progresivamente. Por ello, la estimación siempre debe
ser un proceso
continuo, con constantes refinamientos y mejoras, más
que una actividad puntual. - Descripción del
Problema - Aproximación
histórica al problema
Para realizar la recolección de los datos
necesarios para solucionar el problema planteado, se procede al
estudio de otros métodos utilizados en la actualidad para
conocer cuales son los atributos que influyen y ayudan a definir
el problema.
El coste del desarrollo software es función
básicamente del personal necesario y este se deriva de
diversos factores relativos al proyecto, al equipo humano, las
condiciones de desarrollo y el producto. La identificación
del producto se realiza mediante métricas que caractericen
su tamaño que es el factor primario en todos los modelos
de coste.
Existen dos formas habituales de medir el tamaño
de un proyecto de sistemas de información que son,
líneas de código
y puntos de función.
El Análisis de Puntos de Función [5] es
una métrica que cuantifica la funcionalidad que hay que
entregar al usuario al construir una aplicación. La
propuesta inicial de los puntos de función fue realizada
por A. J. Allbrecht y, desde entonces, ha sufrido diversos
refinamientos y han aparecido diferentes versiones de la misma.
Todas las variedades de puntos de función se apoyan en
datos que implican la existencia de una especificación
más o menos formalizada.
La originalidad de este método está en que
permite medir el tamaño de los proyectos de sistema de
información, a partir de la visión que tienen los
usuarios finales de las funciones que
requiere la aplicación, sin preocuparse de la tecnología,
herramientas o lenguajes de
programación que serán utilizados.
Los puntos de función clasifican estas vistas en
cinco tipos de funcionalidades:
- Entradas, en esta categoría se encuentra todo
el aporte de comunicación de los usuarios al programa. - Salidas, todos los aportes de comunicación del
programa con el usuario. - Ficheros lógicos internos, principales
ficheros lógicos desde el punto de vista del
usuario. - Ficheros de interfaz, ficheros para interactuar con
otros programas. - Consultas, todas las entradas que han de provocar una
salida inmediata.
Una vez ponderados estos factores en función de
la complejidad se consiguen los puntos de función no
ajustados.
Pero para conocer el efecto real de las funciones es
necesario incorporar otros datos que introduzcan el efecto de
aquellos factores que afecten globalmente a la aplicación.
Estos factores de ajuste tienen en cuenta circunstancias como
factores humanos o tecnológicos.
Otro método es MARK II, este método es una
evolución del modelo de Allan J. Albrecht,
siendo su principal característica que contempla el
sistema como una colección de transacciones lógicas
compuestas por componentes de entrada, de proceso y de
salida.
Una vez ajustados los Puntos de Función, para
realizar el cálculo de
la duración del proyecto bastará con multiplicar el
valor
calculado por los días en que se valore cada Punto de
Función. En cada organización se asigna un valor en
días, diferente para el Punto de
Función.
También existen métodos que cuantifican
las funcionalidades con métricas orientados a
objetos.
Otros métodos que se pueden utilizar para estimar
el coste de un proyecto de sistemas de información es la
"Opinión de expertos", que consiste en la consulta
a personas experimentadas en la materia de que
se trate.
Otra técnica utilizada es la estimación
por analogía, el cual consiste en una variante
más formal de la opinión de expertos en la que se
compara el proyecto que se va a desarrollar con uno o más
proyectos terminados de los que se dispone de datos. En
función de las similitudes y diferencias con dichos
proyectos se deduce el coste del nuevo desarrollo.
Otro conjunto de métodos son los que se denominan
"ecuaciones, modelos de estimación". En general,
son fórmulas matemáticas que relacionan los diversos
parámetros del proyecto (tamaño del software que se
debe construir, condiciones de entorno del proyecto, etc.) con el
coste o esfuerzo requerido. Entre estos se encuentra SLIM y
COCOMO.
COCOMO [6] es un método de estimación
empírica y está basado en datos obtenidos de la
experiencia. Consiste en estimar el esfuerzo en personas-mes
tomando como base el tamaño medido en líneas de
código y la duración del proyecto basándose
en el esfuerzo. También utiliza unos parámetros de
ajuste según el tipo o modo de desarrollo del proyecto,
que puede ser "organic", "semidetached" y "embedded".
A partir de estas ecuaciones
básicas, COCOMO distingue tres modelos distintos que se
corresponden con las diferentes cantidades de información
disponible en las distintas etapas del ciclo de vida,
que será básico, intermedio o avanzado.
Para el cálculo final del esfuerzo necesario,
además de las fórmulas, se ha de aplicar un factor
de ajuste del esfuerzo que incluyen atributos del producto,
hardware, del
personal y del proyecto.
Posteriormente surge una nueva evolución, COCOMO
II [6] que se dirige a las siguientes tres fases del ciclo de
vida en espiral que son: desarrollo de aplicaciones,
diseño anticipado y Post-Arquitectura.
También se han cambiado los tres modos del exponente, se
han reemplazado por cinco factores de escala.
Dado que se parte de un conjunto de datos
históricos, se plantea utilizar una metodología
orientada a la minería de datos, ya que se pretende
conseguir mediante técnicas y herramientas extraer un
conocimiento implícito, que actualmente no conocemos y
se encuentra almacenado en el conjunto de datos. Utilizar
esta metodología tiene como objetivo
predecir de forma automatizada tendencias y comportamientos o
construir un modelo desconocido.La metodología CRISP-DM [8] estructura
el ciclo de vida de un proyecto de minería de datos en
seis fases, que interactúan entre ellas de forma
iterativa durante el desarrollo del proyecto.Fases del proceso de modelado
metodología CRISP-DM.La primera fase, análisis del problema,
incluye la comprensión de los objetivos
y requerimientos del proyecto desde una perspectiva
empresarial, con el fin de convertirlos en objetivos
técnicos y en una planificación.La segunda fase de análisis de datos
comprende la recolección inicial de datos, en orden a
que sea posible establecer un primer contacto con el
problema, identificando la calidad de los datos y
estableciendo las relaciones más evidentes que
permitan establecer las primeras hipótesis.Una vez, realizado el análisis de datos, la
metodología establece que se proceda a la
preparación de los datos, de tal forma que puedan ser
tratados
por las técnicas de modelado. La preparación de
datos incluye las tareas generales de selección de datos a los que se va a
aplicar la técnica de modelado (variables y muestras),
limpieza de los datos, generación de variables
adicionales, integración de diferentes
orígenes de datos y cambios de formato.La fase de preparación de los datos, se
encuentra muy relacionada con la fase de modelado, puesto que
en función de la técnica de modelado que vaya a
ser utilizada los datos necesitan ser procesados en
diferentes formas. Por lo tanto las fases de
preparación y modelado interactúan de forma
sistemática.En la fase de modelado se seleccionan las
técnicas de modelado más apropiadas para el
proyecto de minería de datos específico. Antes
de proceder al modelado de los datos se debe de establecer un
diseño del método de evaluación de los modelos, que permita
establecer el grado de bondad de los modelos. Una vez
realizadas estas tareas genéricas se procede a la
generación y evaluación del modelo. Los
parámetros utilizados en la generación del
modelo dependen de las características de los
datos.En la fase de evaluación, se evalúa el
modelo, no desde el punto de vista de los datos, sino del
cumplimiento de los criterios de éxito del problema. Se debe revisar el
proceso seguido, teniendo en cuenta los resultados obtenidos,
para poder
repetir algún paso en el que, a la vista del
desarrollo posterior del proceso, se hayan podido cometer
errores. Si el modelo generado es válido en
función de los criterios de éxito establecidos
en la primera fase, se procede a la explotación del
modelo.Normalmente los proyectos de minería de datos
no terminan en la implantación del modelo sino que se
debe documentar y presentar los resultados de manera
comprensible en orden a lograr un incremento del
conocimiento. Además, en la fase de explotación
se debe asegurar el mantenimiento de la aplicación y la
posible difusión de los resultados [3].- Técnicas y
MetodologíaSiguiendo los pasos marcados por la
metodología, se realiza la adquisición de los
datos para su posterior preparación y generar el
modelo.Para comenzar el análisis del conjunto de
datos, se ha partido de la base de
datos histórica que ha proporcionado ISBSG
(Intenational Software Benchmarking Standards Group), [1] el
cual dispone de un repositorio de más de 2000
proyectos. Los datos con los que se trabaja nos aportan
información sobre el tipo de proyecto, tipo de
producto, desarrollo, tamaño, tipo de equipo, puntos
de función y esfuerzos.A continuación se procede a realizar una
exploración de los datos y una verificación de
la calidad.Para lo cual se realizan técnicas estadísticas básicas, para
encontrar las propiedades de los datos. Dada la gran cantidad
de variables categóricas se procede a realizar
histogramas con las frecuencias de ocurrencia.En este punto se procede a realizar la fase de
preparación de los datos. Esta fase ha sido muy
costosa debido a la gran cantidad de valores ausentes, sobre
los que se han analizado la utilización de diversas
técnicas para predecir o eliminar ese hueco en la
información.Porcentaje de variables que con
valores ausentes.Se han realizado estudios para comprobar si esa
ausencia de información tiene algún tipo de
influencia en el esfuerzo necesario para realizar el
proyecto, que es la variable que se ha identificado como
salida del modelo.Otro de los problemas encontrados es la gran
presencia de variables categóricas de difícil
procesamiento por ciertos métodos de
modelado.Se han considerado diferentes técnicas para
el tratamiento y preprocesado de estas variables. Cuando el
número de clases existente era reducido (inferior a
seis), el tratamiento dado a los datos ha consistido en crear
tantas variables como clases. Así por ejemplo, si la
variable categórica "plataforma de desarrollo",
contenía los valores MR , MF y PC, se han creado 3
variables codificadas como (1,0,0) si el valor de la variable
es MR, (0,1,0) si es MF y (0,0,1) si es PC.Cuando el número de clases de una variable
era muy alto (superior a seis) se ha optado por transformar
el valor de la categoría directamente a un valor
numérico.Para el tratamiento de los datos perdidos se ha
optado por seleccionar una técnica robusta que permita
el manejo de este tipo de datos, tal como redes SOM, MARS [2] y
MART [4].Para el proceso de evaluación de los
resultados los datos han sido divididos en tres conjuntos
separados de forma aleatoria: uno de ellos que contiene el
75% de los datos ha sido destinado a la construcción del modelo, un 10% para la
prueba del modelo y selección del mejor modelo. Los
resultados se han validado con el 15% de datos
restantes.Una vez generado el modelo se puede observar que la
variable que más información aporta a la
estimación del esfuerzo, para este modelo, es el
tamaño máximo del equipo. También se
puede considerar importante la estimación de los
puntos de función y el valor del factor de
ajuste.Otro factor importante es la plataforma de
desarrollo utilizada y el tipo de lenguaje
que se utiliza en la programación, se ha de destacar que la
ausencia de información en estas dos variables tiene
una gran importancia relativa para la estimación del
esfuerzo.También se ha introducido en el modelo un
parámetro informativo respecto a la calidad de la
información, en este caso se han dividido en cuatro
categorías que son: convincente, correcto, no probado
y poca credibilidad.El modelo también tiene en cuenta si se ha
realizado una adaptación del código, si se ha
utilizado planificación, así como otras
variables relacionadas con la métrica utilizada y la
implicación de los recursos. - Método de
Modelado - Conclusiones
Todas las normas o
metodologías de gestión de proyectos que existen
actualmente hacen hincapié en la importancia de la
gestión de plazos y costes dentro de cualquier tipo de
proyecto y mucho más en los proyectos de sistemas de
información debido a las peculiaridades
propias.
El sistema elegido para realizar las estimaciones ha de
tener la confianza del director de proyectos y permitir adaptarse
a las necesidades cambiantes de la producción de los
nuevos sistemas de información.
La recopilación de datos históricos en el
cierre del proyecto es imprescindible para actualizar la base de
datos de proyectos y para que el sistema pueda ajustar sus
parámetros a las condiciones cambiantes de los sistemas de
información.
- ISBSG. International Software Benchmarking Standards
Group. http://www.isbsg.org/ - Friedman, Jerome H. Multivariate Adaptive Regression
Splines. The annals of statistics. Volumen:19,
Nº 1, pag. 1-141, 1991. - Rodríguez M. T., Ortega F., Rendueles J. L.,
Menendez C. Convination of Multivariate Adaptive Techniques and
neural networks prediction and control of internal cleanliness
in Steel Strips. Procedeeings of EUNITE 2003. Oulu
2003 - Friedman, Jerome H. Greedy function approximation: a
gradient boosting machine. Technical report, department of
Statistics, Stanford university 1999. - IFPUG, International Function Point Users’
Group. http://www.ifpug.org/ - COCOMO, Constructive Cost Model. http://sunset.usc.edu/research/COCOMOII/
- Chapman, P, Clinton, J. Khabaza, T. Reinartz, T.
Rüdiger, W. The CRISP-DM Process Modelo, CRISP-DM
Discusión Paper, 1999 - CRISP DM, CRoss-Industry Standard Process for Data
Mining. http://www.crisp-dm.org/ - ISO 10006. Guía de gestión
de calidad. Calidad en Gestión de
Proyectos.
Carlos Alba
González-Fanjul1
Gemma Marta Martínez
Huerta
Joaquín Villanueva
Balsera
Valeriano Álvarez Cabal
1Area de Proyectos de Ingeniería, Universidad de
Oviedo. Escuela de Minas,
C/Independencia
4, 3004, Oviedo