• No se han encontrado resultados

Desarrollo del simulador

3.2 Simulación

3.2.2 Desarrollo del simulador

Desde la concepción de la idea de proyecto, se creyó esencial el poder simular el modelo propuesto por la metodología, con ánimo de dar rigurosidad y poder profundizar en las capacidades de la minería de datos. Inicialmente se estableció la simple puesta en escena de los escenarios a base de desarrollos ad-hoc, sin implementar una solución capaz de albergar un gran abanico de posibilidades que puede requerir un software para tal propósito. Esta idea fue cambiando a lo largo del tiempo al descubrir que sería de gran valor poder generalizar y automatizar el modelo que se iba completando en cada paso.

En la actualidad existen multitud de simuladores que usan el método Monte Carlo, la gran mayoría de ellos multidisciplinares, y es precisamente ese ámbito genérico al que están orientados, incluso en materia de riesgos, lo que hace que no acaben teniendo una gran aceptación en la gestión de proyectos de las organizaciones. Este software comercial se apoya principalmente en hojas de cálculo para definir los modelos a simular, algo que no es del todo conveniente si se pretende modelar adecuadamente un proyecto. Por otro lado, el no estar orientados a los fenómenos de riesgo específicos de proyectos, sus modelos y datos de entrada requeridos hacen poco operativo su uso. En esto se incidirá especialmente a la hora de modelar la correlación en el Capítulo 6, donde este software propone hacerlo a través de coeficientes de correlación y métodos complejos de generación de variables aleatorias, muy alejado de la realidad, por lo que se acaba proponiendo otro punto de vista en la metodología propuesta, un enfoque explícito sobre los riesgos en el modelo.

Sin pretensión de desarrollar una solución orientada a cualquier tipo de usuario mediante una interfaz amigable y depurada, si se llevó a cabo un giro de tuerca en la parte más técnica de este proyecto. Se decidió crear un conjunto de librerías y módulos que pudieran usarse de manera generalizada con cualquier entrada que se definen en esta metodología. De este modo, el desarrollo permitiría la simulación de cualquier escenario que se plantee, sin importar las particularidades mientras estas estén dentro del marco establecido por la metodología. El objetivo es tener una

54

solución robusta que responda a todas las demandas planteadas a través de scripts donde se introduzcan los datos del proyecto o escenario en cuestión. Estas demandas se centran en la casuística de los riesgos en proyectos con el método Monte Carlo como motor, para tratar de conseguir a través de la minería de datos la mayor cantidad de información relevante.

Observando la naturaleza del problema, rápidamente se percibe que este es ampliamente genérico, y la multitud de situaciones que se pueden plantear complican su desarrollo. Se ha de tener en cuenta que un proyecto puede estar definido por multitud de factores, existentes o no según se requiera, cada uno con grandes posibilidades. El ejemplo más directo para esto es la lógica temporal del plan de proyecto, donde las relaciones entre tareas y condiciones existentes son múltiples, por lo que se requiere un proceso de identificación de cada una de las situaciones para poder modelarse. De igual manera, para hacer los diferentes análisis que se proponen en la metodología, muchos de los parámetros pueden contemplarse o no, como son los riesgos de duración, de costes, análisis de sensibilidades o correlaciones entre diferentes elementos, cada uno de ellos con sus diferentes implicaciones. La información tratada en cada análisis puede requerirse posteriormente, así como ser dependiente de procesos precedentes. Todo esto hace que la etapa de diseño y estudio de los procesos que tienen lugar en el mundo real haya sido exhaustiva para poder trasladarlo a un simulador que ofrezca veracidad y robustez a los resultados. Para tal propósito se decidió el uso de MATLABTM como entorno de desarrollo. Las razones las recogemos a continuación:

 La naturaleza de los cálculos necesarios hace que el potencial para el cálculo matricial de MATLAB sea altamente conveniente.

 Tiene recursos suficientes para mostrar la información de los resultados convenientemente, principalmente gráficas y tablas.

 No se ha creído oportuno el desarrollo de una interfaz gráfica para usuarios y aunque también lo permite, es cierto que puede haber mejores opciones.  El uso intensivo a lo largo de la carrera hace que se tenga un gran dominio de

él, y sea un entorno muy conveniente para un desarrollo.

Estas han sido las principales razones para la elección de MATLABTM como entorno, que una vez finalizado el desarrollo se ha creído como una decisión acertada.

El principal objeto de este Proyecto Fin de Carrera es proponer una metodología orientada a la cuantificación del riesgo en proyectos, apta para el mundo real que requiere de tales procesos, pero también rigurosa en la ejecución. El conjunto de módulos y funciones automatiza el proceso de simulación y extracción de información diseñada por la metodología, pudiendo albergar gran variedad de escenarios.

55 El primer paso fue establecer las entradas de datos que se necesitan para el propósito. Estas entradas de datos se van definiendo y comentando a lo largo del texto, en el cual se muestra cómo se van incorporando cada vez un mayor número de parámetros que finalmente conforman todas las funcionalidades de este simulador. Con el fin de generalizar la entrada de datos, se diseñó un script genérico para rellenar con los diferentes parámetros. Muchos de estos elementos tienen un número de entradas variables, como puede ser el número de riesgos que comprometen el proyecto, los cuales pueden existir o no; mientras que otros pueden ser constantes, como el número de parámetros de las distribuciones de probabilidad (optimista, probable y pesimista), o variables como los factores de correlación de una matriz de interdependencia de tareas. El código desarrollado se alimenta de este script inicial, que también define la activación de distintas funcionalidades, estableciendo la manera de tratar estos datos y realiza la simulación correspondiente.

La modularidad se ha tenido en cuenta a la hora de desarrollar este simulador, tratando de separar las distintas funcionalidades en módulos independientes. El simulador tiene dos módulos principales, uno orientado a la simulación para la generación de los datos, y un segundo orientado a la interpretación y minería de datos de los resultados. Entre ambos abarcan la mayoría de funciones y módulos necesarios, haciendo de columna vertebral entre todos ellos para procesar el flujo de datos según las condiciones necesarias.

Estos módulos se definieron desde la fase más prematura del simulador, en los cuales se han ido incluyendo el resto de funcionalidades según la metodología ha ido ampliando sus capacidades. Un correcto diseño de este núcleo desde el principio fue necesario para que la integración de todas las posteriores funcionalidades tuviera el mínimo impacto en el diseño, ya que el simulador se ha ido desarrollando en gran medida de manera paralela a la definición metodológica. Según evoluciona la metodología se amplía los módulos, siendo la versión definitiva del simulador perfectamente operativo tanto con las simulaciones más básicas, como las más completas que se termina planteando.

A continuación se muestra el esquema básico de la arquitectura de los módulos del simulador y su flujo de decisiones, los cuales se comentan posteriormente. A lo largo del documento, según se vaya exponiendo la metodología, se irá teniendo una mayor comprensión de las entradas y salidas, así como cada modulo y de las funcionalidades que ofrece:

56

57 Datos de entrada: Es el script estandarizado con todos los datos de entrada posibles de un plan de proyecto que admite el simulador. Según el proyecto o las funcionalidades a simular, este dispone de distintas opciones.

Análisis de Coherencia de datos: Módulo que comprueba que los datos de entrada del script tienen la coherencia necesaria para simularlos correctamente, comprobando cada uno de los argumentos.

Generador de Incertidumbre: Módulo que dispone del generador de variables aleatorias según las funciones de distribución requeridas por el elemento a simular. Como se verá más adelante, primero tendrá una utilidad en el enfoque de riesgos inicial, donde el riesgo de las tareas está implícito en la duración estimada en su FDP. Posteriormente veremos en el enfoque de riesgos explícitos, que se usará para calcular solamente el error de estimación.

Generador de Correlación: Contiene toda la algoritmia necesaria para correlacionar los elementos del proyecto que se le indican. Se profundiza el contenido de este módulo en el Capítulo 6 y Apéndice B.

Generador de Riesgos: Este módulo se usa para el método de riesgos explícitos (apartado 6.3), donde el elemento riesgo se define explícitamente y se asigna a cada elemento (tarea o recurso económico) de manera específica para crear la incertidumbre y correlación.

Planificador Temporal: Este módulo es uno de los principales de la simulación Monte Carlo y las funcionalidades de la metodología. En él, se simula la planificación temporal del proyecto de forma determinística y estocástica a través de los datos de entrada y generadores anteriores.

Planificador Económico: Si el proyecto a simular dispone de costes, este módulo usa la asignación económica de las entradas junto con los datos de la planificación temporal para evaluar todo lo relativo al aspecto económico (Capítulo 7).

Segmentado Escenarios: Cuando se establece la necesidad, se segmentan los escenarios diferenciados del proyecto, gestionando los disparadores de eventos condicionales y demás condiciones existentes de lo temporal y económico (Capítulos 5 y 8).

Minería de datos: Aquí se realiza la extracción y tratamiento de la información generada creando las posibles salidas según los requerimientos de la simulación (entradas y funcionalidades ejecutadas).

Análisis Discriminatorio: Este módulo se basa en la funcionalidad de analizar el impacto marginal de cada riesgo según el criterio (tiempo o coste) establecido (Capítulo 8), permitido por el enfoque de riesgos explícitos. Gracias a ello, nos permitirá cuantificar

58

con gran detalle el efecto de cada riesgo y evaluar cómo funcionan las estrategias de acción propuestas, algo clave para la metodología.

59

4 Aspecto humano en relación con la gestión del

riesgo