Diseño de un Simulador Dinámico de Proyectos de Desarrollo de Software que utilizan metodología Scrum
Authors:   , Godoy Diego Alberto 
Published: September 2019

En este trabajo de tesis se propone el diseño de un modelo de simulación del proceso de desarrollo de software que utiliza la Metodología de desarrollo Ágil Scrum. Se ha realizado un análisis de la metodología Scrum, la Metodología de Dinámica de Sistemas y de trabajos similares, correspondientes a simuladores de desarrollo de proyectos de software tanto de metodologías ágiles como tradicionales. El modelo se ha construido utilizando la metodología de dinámica de sistemas propuesta por Jay Forrester , que consta de la fase de Conceptualización, Formulación y Evaluación. El modelo diseñado se ha divido en los siguientes Subsistemas: Planificación, Producción, Desarrollo de Tareas, Pruebas de Desarrollo, Pruebas de Integración, Presión en el Plazo, Desarrollo de Tareas Extras, Promociones de R.H., Experiencia de R.H., Cansancio de R.H., Horas Trabajadas de R.H., Inasistencias de R.H. Para la implementación del modelo se utilizado la herramienta Vensim PLE en versión educativa. Para la validación del modelo se han utilizado tres casos de proyectos reales de software que siguieron la metodología Scrum. Dentro de los parámetros que se pueden establecer previo al inicio de cada simulación se encuentran: la duración y la velocidad de cada Sprint, la velocidad estimada de desarrollo de las tareas, Factores de Cansancio, de Presión en el plazo, Cantidad de integrantes del Team según su experiencia en la metodología y las tareas extras que se prevén puedan surgir. A través de la modificación de valores de los parámetros durante su ejecución el usuario puede establecer o modificar la cantidad de integrantes del Team que abandonan el proyecto, clasificar al Team mediante la asociación de estos a su experiencia en Scrum en Juniors o Expertos, cambiar la cantidad de horas estimadas de duración del proyecto, generar horas extras e inasistencia de los integrantes de manera determinística o pseudoaleatoria, entre otros. Una vez validado el modelo se propusieron cuatro casos de experimentación, los cuales se sometieron a distintas políticas para probar las posibilidades del modelo construido frente a situaciones que se dan en los proyectos de software que utilizan Scrum para su gestión. Las políticas propuestas, simulan decisiones de los Scrum Master y el team y tienden a que los proyectos puedan completarse en el tiempo previamente estimado o por el contrario extender el tiempo para terminar con todas las tareas minimizando los errores. Otro aspecto estudiado en los experimentos es el de la gestión de los recursos humanos, en cuanto a la contratación y promoción de miembros del Team, Senior y Junior. Estos modelos fueron probados en orden creciente de dificultad y utilización de la mayor cantidad de variables intervienes. Como conclusión se pude decir que el modelo cumple con su objetivo de ser de utilidad para el Scrum Master y el Team a la hora analizar el efecto del uso conjunto de la metodología Scrum en proyectos de desarrollo de software. Lo que diferencia a este trabajo de otros relacionados es que se han modelado las características esenciales de la metodología Scrum aplicada a proyectos de desarrollo de software. La dificultad de contar con datos posmortem de proyectos de software desarrollados siguiendo scrum es una dificultad que se ha presentado a la hora de validar el modelo. Es por ello que como trabajos futuros se propone el diseño de una base de datos de proyectos de desarrollo de software que utilicen metodologías ágiles. Por otro lado se pretende que el modelo construido pueda ser utilizado para el entrenamiento de Scrum Masters y Miembros del Team, en la estimación y gestión de proyectos que utilicen Scrum como Metodología.