Tipo de artículo: Artículo original Temática: Gestión de Proyectos
Recibido: 10/06/2019 | Aceptado: 10/10/2019 | Publicado: 22/10/2019
Planificación de cronogramas en entornos multi-proyectos de
desarrollo de software
Schedule planning in multiproject software development
environments
Kirenia Rojas Escobar 1*, Leonel Alejandro Araujo Taboada 2
1
Empresa de Tecnologías de la Información para la Defensa (XETID), Cuba, [email protected]. 2
Empresa de Tecnologías de la Información para la Defensa (XETID), Cuba.
*
Autor para correspondencia: [email protected]
Resumen
Actualmente resulta significativo el número de proyectos de software que no culminan con éxito, siguen presentando dificultades con la planificación, asignación del personal a las tareas, estimaciones erróneas e insuficiente gestión. Problema que adquiere un alcance mayor en las organizaciones con entornos Multi-proyectos de desarrollo de software, debido al elevado número de alternativas que se deben considerar, situación que puede ser mitigada por acciones orientadas a mejorar la calidad en los procesos de construcción de los cronogramas de proyecto.
Al problema de la planificación de cronogramas en proyectos de software se le presta gran atención en la actualidad y numerosas investigaciones han sido encaminadas a la representación de las características de los recursos humanos en los modelos de optimización propuestos y en soluciones computacionales al mismo. Pero desde principio de los años noventa se hace alusión a la escasez de resultados científicos en el tratamiento de la planificación en entornos Multi-proyectos de desarrollo de software y aún en la actualidad se exponen criterios similares. Los principales objetivos de este artículo son, caracterizar, en cuanto a los elementos que contiene, el problema de planificación en entornos Multi-proyectos de desarrollo de software, brindar un resumen de soluciones ha dicho problema. Además, presentar un sistema multiagentes de planificación para automatizar la planificación del cronograma en dichos entornos. Mostrar los resultados del desempeño del mismo mediante la aplicación de este a una instancia multiproyecto simple.
Palabras clave: Gestión de Proyectos; Entornos Multi-proyectos; Sistema multiagente, cronogramas.
Abstract
alternatives that should be considered, a situation that can be mitigated by actions aimed at improving the quality in the construction processes of project schedules.
The problem of planning schedules in software projects is being given great attention at present and numerous investigations have been directed to the representation of the characteristics of human resources in the proposed optimization models and in computational solutions thereto. But since the beginning of the nineties there is reference to the scarcity of scientific results in the treatment of planning in multi-project environments of software development and even today similar criteria are exposed. The main objectives of this article are to characterize, in terms of the elements it contains, the problem of planning in multi-project software development environments, providing a summary of solutions to this problem. In addition, present a multi-agent planning system to automate schedule planning in these environments. Show the results of its performance by applying this to a simple multiproject instance.
Keywords: Project management, Multiproject Environments; Multiagent System; Scheduling.
Introducción
La Gestión de Proyectos (GP) es una de las disciplinas de mayor crecimiento en la actualidad. Ello es debido a que la
propia idea de proyecto ha trascendido a su interpretación tradicional asociada típicamente a la construcción de un
producto o un sistema material singular, y se extiende a subconjuntos cada vez mayores de la actividad empresarial
(Victorio, 2008).
El entorno actual de desarrollo de proyectos de software se caracteriza por cambios tecnológicos acelerados, presiones
económicas, trabajo en equipos multidisciplinarios, recursos y tiempo limitado. Debido a esto y a otros factores, la
industria del software se encuentra dentro del número creciente de empresas y organizaciones que están adaptando e
incorporando la GP a sus actividades cotidianas y con esto busca planear, organizar, asegurar y coordinar recursos
tanto humanos como no humanos para cumplir con los objetivos, entregables y criterios de éxito en sus proyectos. Sin
embargo, y a pasar de los reconocidos logros de la Industria del Software, aún resulta significativo el número de
proyectos que no culminan con éxito (Ampuero, 2009), siguen presentando dificultades con la planificación,
problemas con la asignación del personal a las tareas, la definición del alcance, estimaciones erróneas e insuficiente
gestión (García Vacacela, Pérez Pupo, Villavicencio, Piñero, & Beovides, 2016).
Este problema adquiere un alcance mayor en las organizaciones donde es preciso planificar proyectos de software que
se ejecutan simultáneamente utilizando los mismos recursos humanos o entornos Multi-proyectos como se le conoce
en la literatura, ya que se deben tener en cuenta, no solo las relaciones existentes entre actividades de un mismo
proyecto, sino estudiar las relaciones y compatibilidades que se dan entre distintos proyectos. Situación que puede ser
de los cronogramas de proyectos (García Vacacela, Pérez Pupo, Villavicencio, Piñero, & Beovides, 2016). Puesto
que la construcción de cronogramas es uno de los aspectos más importantes a la hora de planificar un proyecto de
software. Estos deben permitir establecer un guión temporal de las acciones y tareas a desarrollar durante la ejecución
del proyecto y tener en cuenta todos aquellos factores decisivos a la hora de realizar los trabajos, desde el orden
necesario de los mismos hasta la disponibilidad de los recursos, principalmente los recursos humanos, debido al papel
crítico que juegan estos en el proceso de desarrollo de software (Plekhanova, On project management scheduling
where human resource is a critical variable, 1998) (Ampuero, 2009) (Aristizábal González, Castellanos Trujillo, &
Ordóñez Calderón, 2017).
En este sentido las técnicas clásicas de planificación de proyectos PERT y CPM, no consideran explícitamente la
asignación de los recursos a las tareas, sino que constituyen herramientas de ayuda para la graficación y el análisis de
los cronogramas una vez construidos los mismos. En este contexto desde finales de los sesenta el problema de
construcción de cronogramas de proyectos, suele abordarse como un problema de optimización (Villavicencio, 2016),
conocido como Problema de Planificación de Proyectos o PSP por sus siglas en inglés, los cuales son problemas de
optimización combinatoria de tipo NP-Duro (Demeulemeester & Herroelen, 2002). Por esta razón al problema de la
planificación de cronogramas en proyectos de software se le presta gran atención en la actualidad y numerosas
investigaciones han sido encaminadas a la representación de las características de los recursos humanos en los
modelos de optimización propuestos y en soluciones computacionales al mismo (Abdel-Hamid T., 1989) (Madnick,
1989) (Alba & Chicano, 2007) (Chang, Jiang, Di, Zhu, & Ge, 2008) (Kang, Jung, & Bae, 2011). Pero desde principio
de los años noventa se hace alusión a la escasez de resultados científicos en el tratamiento de la planificación en
entornos Multi-proyectos de desarrollo de software y aún en la actualidad se exponen criterios similares. De aquí que
Los principales objetivos de este artículo son, caracterizar, en cuanto a los elementos que contiene, el problema de
planificación en entornos Multi-proyectos de desarrollo de software, brindar un resumen de soluciones a dicho
problema. La presentación de un sistema multiagentes de planificación para automatizar la planificación del
cronograma en dichos entornos. Mostrar los resultados del desempeño del mismo mediante la aplicación de este a una
instancia multiproyecto simple resumen de una de las instancias de la MPSPLIB y poder extenderlo a instancias más
prometedoras, lo que demostrará cómo el mecanismo propuesto asigna colaborativamente recursos a múltiples
proyectos de desarrollo de software.
Resultados y discusión
manera muy general como el problema de organizar o secuenciar una serie de operaciones y ubicarlas en el tiempo sin
violar ninguna de las restricciones, de precedencias y recursos, impuestas en el sistema.
Los PSP conforman una familia de problemas que por su importancia han suscitado numerosas investigaciones desde
su aparición en los años cincuenta. Estos presentan distintas variantes, que van desde la simple planificación de
actividades sin tener en cuenta los recursos que consumen, hasta variantes más sofisticadas que consideran varios
modos de procesamiento de las actividades, generalización de las relaciones de precedencia, múltiples proyectos de
forma simultánea y proyectos con recursos variables (Hartmann & Briskorn, 2010).
Problema de planificación de múltiples proyectos con recursos limitados
Como se ha abordado anteriormente, existen otras variantes del problema de planificación con restricción de recursos,
que representan situaciones más realistas de la planificación de proyectos (Brucker , Drexl, Mohring , & Neum,
1999), como es el caso del Problema de planificación de múltiples proyectos con recursos limitados o RCMPSP por
sus siglas en inglés. En esta variante se consideran que varios proyectos se ejecutan simultáneamente con los mismos
recursos. Este no es un problema aislado, el ambiente multiproyecto define la naturaleza de los negocios en la
mayoría de empresas de manufactura y de servicios, y algunos estudios han demostrado que el 84% de las compañías
trabajan con múltiples proyectos simultáneamente y el 90% en valor de todos los proyectos se desarrolla en este
contexto, sin embargo, a pesar de la generalidad del ambiente de múltiples proyectos en las empresas, es común ver
que los cronogramas se planean y se controlan bajo el supuesto de proyectos individuales, situación que no refleja la
realidad durante la ejecución, ya que diferentes proyectos deben competir por la disponibilidad de los recursos que
comparten (Chaparro Pineda & Castalleñeda Tibaque, 2015).
Figura 1: Problema General en la gestión de Multi-proyectos
Problema de planificación de múltiples proyectos de desarrollo de software con recursos limitados
Los proyectos de desarrollo de software se diferencian de los otros proyectos de ingeniería tradicional en la naturaleza
es el primer nivel del proceso de Ingeniería de Software, porque cubre todo el proceso de desarrollo. Para conseguir
un proyecto de software fructífero se debe comprender, entre otros aspectos, el ámbito del trabajo a realizar, el plan a
seguir y los recursos humanos requeridos (Luis, Algoritmo Genético para optimizar la planificación del cronograma
de un proyecto de software., 2015), principal atención a esto último por el papel crítico que juegan estos en el proceso
de desarrollo de software (Ampuero, 2009), (Plekhanova, On project management scheduling where human resource
is a critical variable, 1998). Pues su eficaz Gestión condiciona el éxito o fracaso de los proyectos. Las habilidades y el
conocimiento de estos influyen directamente en la calidad y el tiempo de ejecución de las actividades que componen
el proyecto (Abdel-Hamid & Madnick, 1989), (Abdel-Hamid T., 1989).
Debido a lo anterior, las tendencias actuales y un mercado donde la competitividad aumenta, es normal que las
empresas de desarrollo de software ejecuten varios proyectos utilizando los mismos recursos humanos, por lo que
estas se caracterizan por cambios tecnológicos acelerados, presiones económicas, trabajo en equipos
multidisciplinarios, recursos y tiempo limitado, etc. En tal sentido y teniendo en cuenta lo que se describe en la
literatura sobre los PSP, el problema que se trata en este epígrafe es similar al ya bien conocido RCMPSP (Medrano
Broche, 2013), (Gonsalves, Ito, & Kawabata, 2008), (Victorio, 2008), solo se le introducen algunos cambios, si se
toma como referencia el problema que se trata en (Lova & Tormos, 2001).
En (Medrano Broche, 2013) el Problema de planificación de múltiples proyectos de desarrollo de software con
recursos limitados o SDMPSP de ahora en lo adelante, se consideran proyectos de desarrollo de
software que se ejecutan en una organización. Cada proyecto i ∈ I tiene una fecha de inicio , se considera que existe
al menos un proyecto disponible para comenzar en . Cada uno de los proyectos está compuesto por un
conjunto de actividades. Las actividades y son ficticias, tienen tiempo de duración
igual a cero y no requieren de recursos para su procesamiento, sin ciclos donde
es el conjunto de actividades antecesoras de la actividad j del proyecto i.
Los proyectos son independientes entre sí, no existe relación de precedencia entre actividades de proyectos diferentes.
Cada actividad posee tiempo de inicio y tiempo de fin . Cada una de las actividades de un
proyecto , pueden ser de tipos . La organización cuenta con un equipo de desarrollado
sólo tipo de actividades. La duración de cada actividad es conocida y se calcula como , donde
es la capacidad productiva del recurso y es el contenido de trabajo de la actividad del proyecto .
Solución a problemas de planificación en proyectos de software
De manera general, los PSP son resueltos mediante el uso de metodologías heurísticas o metaheurísticas (Kolisch &
Hartmann, 2006), (Kolish & Hartman, 1999), no garantizan la optimalidad, pero pueden dar muy buenas soluciones
en tiempos razonables (Morillo, Moreno, & Díaz, 2014), (Posada, 2010). A estas soluciones se le han ido sumando
otras como son los casos utilizando agentes inteligentes, en aras de lograr representar a través de estos un
acercamiento a la realidad que se vive durante el proceso de desarrollo de software. A continuación, se presenta un
grupo de soluciones a dicho problema.
A. “Application of Multiagent Systems in Project Management” (Yan, Kuphal, & Bode, 2000).
B. “Metaheurísticas e Ingeniería de Software” (Chicano, 2007)
C. “A Generic Agent Framework to Support the Various Software Project Management Processes” (Nienaber &
Barnard , 2007)
D. “Time-Line based model for software project scheduling with genetic algorithm” (Chang, Jiang, Di, Zhu, &
Ge, 2008)
E. “Un modelo para la simulación híbrida de la producción de software a medida en un entorno multiproyecto”
(Victorio, 2008)
F. “Tecnologías Sistema Multiagente de simulación para la planificación de proyectos de software”
(Arribasplata & Cánepa Pérez, 2008)
G. “Resource Constrained Multi-project Management with Activity Weights in Software Engineering” (Chen &
Li, 2009)
H. “Multi-agent technology for scheduling and control projects in multi-project environments. An Auction based
approach.” ( Arauzo, Galán, Pajares, & López-Paredes, 2009)
I. “Planificación de múltiples proyectos de desarrollo de software utilizando métodos metaheurísticos.”
(Medrano Broche, 2013)
J. “Algoritmo evolutivo para el problema de planificación en proyectos de desarrollo de software.” (Dupuy,
K. Experiencias usando algoritmos genéticos en la planificación de Proyectos (García Vacacela, Pérez Pupo,
Villavicencio, Piñero, & Beovides, 2016)
El Sistema Multiagente (SMA) de planificación que se presenta en este trabajo ha sido diseñado pensando en que la
organización se dedica al desarrollo de productos de software. Dicha organización está formada por proyectos. Cada
proyecto está compuesto por actividades, además se cuenta con un grupo de recursos humanos que son compartidos
entre todos los proyectos activos. Los recursos humanos, a los que en su conjunto se le denomina equipo de
desarrollo, son las personas requeridas para el desarrollo de las actividades de uno o varios proyectos que se ejecutan
simultáneamente. Cada miembro del equipo de desarrollo está especializado en actividades específicas en el
desarrollo del producto. En función de ello cada uno tiene uno o varios roles asociados, esto viene dado en función de
las competencias que encierra. Además, los recursos cuentan con un fondo de tiempo en horas que representa la
cantidad de tiempo que puede dedicar al desarrollo de las actividades durante la semana. En la siguiente figura se
muestra un esquema de cómo será analizado el proceso de planificación en el entorno multiproyecto de desarrollo de
software.
Figura 2: Descripción de la Organización
Para el desarrollo del SMA de planificación de cronogramas, se tuvieron en cuenta varios elementos, partiendo de la
descripción general del problema que se modela en (Medrano Broche, 2013), al cual se le realizaron algunas
modificaciones con el objetivo de reflejar algunas realidades que ocurren en el proceso de desarrollo de software y
que en este no estaban contemplados. Otro de los elementos es el equipo de desarrollo que ejecuta las actividades de
operativas que deben ser tomadas en el proceso de planificación de cronogramas. Luego de estos elementos claves,
por supuesto, se describe el modelo general de los agentes principales que componen el SMA de planificación.
Descripción general del problema
En el problema SDMPSP (siglas en inglés) se consideran proyectos de desarrollo de software que se
ejecutan en una organización. Cada proyecto tiene una fecha de inicio , se considera que existe al menos un
proyecto disponible para comenzar en . Cada uno de los proyectos está compuesto por un
conjunto de actividades. Las actividades y ficticias, tienen tiempo de duración igual a
cero y no requieren de recursos para su procesamiento, sólo indican cuando comienza y cuando termina un proyecto.
Los proyectos se representan por una red dirigida y sin ciclos donde
es el conjunto de actividades antecesoras de la actividad j del proyecto i.
Los proyectos son independientes entre sí, no existe relación de precedencia entre actividades de proyectos diferentes.
Cada actividad posee tiempo de inicio y tiempo de fin . Cada una de las actividades de un
proyecto i pueden ser de tipos . La duración de cada actividad es conocida.
Equipo de Desarrollo
La organización cuenta con un equipo de desarrollado. Se tendrá en cuenta la categoría de recursos renovables, dentro
de estos los recursos humanos, donde es el conjunto de todos los recursos disponibles. Cada recurso tiene uno o
varios roles certificados, que está asociado a la especialización de ejecutar actividades de un tipo . Cada recurso
tiene, además, un fondo de tiempo y un tiempo ocioso, ambos calculados en horas. El primero va a representar la
cantidad de tiempo que puede dedicar al desarrollo de las tareas del proyecto, y por tanto para poder ejecutar una tarea
que tiene una duración debe cumplirse que t sea mayor o igual a . Por su parte el segundo representa el tiempo
que ha estado desocupado desde el último estado o momento donde completó una tarea hasta se le asigne otra tarea.
Decisiones tácticas
Las decisiones tácticas en el entorno multiproyecto son tomadas tiendo en cuenta la elección de cuando se debe
comenzar un proyecto, de forma tal que exista una cantidad adecuada de recursos para ejecutar sus actividades y la de
los demás proyectos que estén activos. Relacionado con esto está el no violar las fechas de compromiso de cada uno
aceptado un nuevo proyecto y se cuenta con el mismo número de recursos o en los casos de pérdida de recursos, en
ambos casos se debe re planificar teniendo en cuenta todo lo anterior.
Decisiones operativas
Las decisiones operativas están relacionadas con la secuenciación de las actividades y con la asignación de los
recursos humanos que las ejecutan. Concretamente se deben tomar tres decisiones. La primera consiste en determinar
la estrategia empleada para priorizar los proyectos que se encuentran activos en la organización. La segunda decisión
viene relacionada a las estrategias de priorización de las actividades de cada uno de los estos proyectos que pueden
ser planificadas en un instante de tiempo. Y la tercera decisión está conformada por la estrategia de asignar los
recursos disponibles para que se ejecuten dichas actividades.
Asignación de prioridad a los proyectos
La estrategia empleada para calcular el valor de prioridad de cada proyecto es teniendo en cuenta la fecha para
cuando fue pactada la culminación del mismo. De esta manera ordenar los proyectos según los que estén más
próximos a esa fecha.
Asignación de prioridad a las actividades
La estrategia que se tuvo en cuenta para calcular el valor de prioridad de cada actividad , fue por la regla de
prioridad número de sucesores inmediatos, el valor de la prioridad es calculado por donde es el
conjunto de las actividades sucesoras inmediatas de la actividad . Se planifica primero la actividad con mayor valor
de . En caso de tengan el mismo valor de , entonces asignar recursos primero a la de mayor , o sea, asignar
recursos a la de mayor tiempo de duración.
Asignación de prioridad de los recursos
El valor de prioridad de cada recurso disponible depende de que el recurso posea el rol asociado al tipo de la actividad
, luego de verificado esto asignar el recurso de menor cantidad de actividades realizas y en caso de que existan varios
recursos disponibles que coincidan en esto, entonces asignar el recurso de menor tiempo de trabajo realizado (en
horas).
Modelo de Agentes
Se han identificado 4 agentes principales. Cada uno de los cuales tiene determinados roles.
Agente Recurso: Dispondrá de todos los recursos con los que se cuenta para realizar las tareas de cada uno de los
rol coincida con el tipo de la actividad. Las propiedades de los recursos y el estado de utilización se registran en la
memoria de este agente.
Agente Proyecto: Gestionará todos los proyectos que se encuentren activos, así como otros que puedan adicionarse.
Agente Actividad: En este caso se creará una agente actividad para gestionar las actividades de los proyectos por
separado, o sea, se creará una agente actividad por cada proyecto activo que haya que planificar, esto se traduce que si
tuviésemos 5 proyectos se crearán 5 agentes actividad para gestionar las actividades de cada uno por separado.
Agente Planificador: Devolverá planificaciones válidas según el número de actividades que tenga cada proyecto con
el recurso que se haya asignado para la realización de cada actividad, respetando las relaciones entre las actividades
de un mismo proyecto y la disponibilidad de los recursos, en función de las características y del fondo de tiempo que
tenga disponible cada uno. Este agente al igual que el resto se controla enviando comandos. Por ejemplo, si el recurso
se transfiere a otra actividad en otro proyecto, un comando de envío puede ordenar al agente que también se mueva al
otro. Al mantener el registro de los requisitos de utilización, es fácil encontrar la dependencia implícita de los
recursos.
En esta sección, además, se presenta un ejemplo simple para demostrar cómo el mecanismo propuesto asigna
colaborativamente recursos a múltiples proyectos de desarrollo de software, garantizando un balance de la carga de
trabajo entre los recursos de un mismo tipo. Se considera un problema de múltiples proyectos simple de 3 proyectos
con 7, 8 y 9 actividades respectivamente y se cuenta con 5 recursos, los cuales tienen creadas las competencias para
uno o varios roles como se muestra en la Tabla 1. Las actividades fueron enumeradas consecutivamente para saber de
forma sencilla a que actividad están siendo asignados los recursos y cada una tiene especificado el tipo de recurso y el
tiempo de duración. Se tuvo en cuenta además que la asignación fuera de uno a uno, por tipo de recurso, o sea, que
cada actividad solo es realizada en un tiempo específico por un solo recurso.
A diferencia de otras soluciones presentadas en la literatura desde el inicio en la planificación se tienen en cuenta los
Figura 3: Relación entre agentes principales.
Tabla 1: Relación del recurso con el rol o roles y el tiempo disponible en horas durante la semana.
Recurso Fondo de Tiempo disponible (h) Rol
1 40 {1,2}
2 40 {1,3}
3 40 {2}
4 40 {2,3}
PROYECTO 1 (Segundo en vencerse) PROYECTO 3 (Primero en vencerse)
Figura 4: Ejemplo de entorno multiproyecto con 3 proyectos activos
Tabla 2: Resumen cantidad de actividades realizadas por cada recurso
Recurso Actividad Actividad Actividad Actividad Tipo Tipo Tipo Tipo
1 2 9 11 24
1 1 1 2
2 4 10 22 23
1 1 1 1
3 5 12 25
2 2 2
4 3 13 26
2 2 2
5 6 14 27 28
3 3 2 3
Tabla 3: Realización de las actividades ordenas según decisiones y restricciones impuestas con el recurso que la realizó.
Actividad 24 22 23 25 26 2 27 3 4 11 28 5 13 10 9 6 12 14
Recurso 1 2 2 3 4 1 5 4 2 1 5 3 4 2 1 5 3 5
En esta tabla no se muestran las actividades que están identificadas con la letra I y F, pues son actividades ficticias
que solo permiten conocer cuando comienza y termina un proyecto, estas actividades su tiempo duración es cero y no
consumen recursos.
Conclusiones
Como resultado de esta investigación se obtiene una revisión del estado del arte en cuanto al tratamiento de los
problemas de planificación de entornos Multi-proyectos, de la cual se pudo constatar que existe escasez de resultados
científicos en el tratamiento de la planificación en entornos Multi-proyectos de desarrollo de software, pues en
soluciones presentadas como (G), se consideran proyectos de pocas actividades y no se describen las características
de los recursos humanos. Otras soluciones como (D) están generalmente asociadas, a la representación de las
características de los recursos humanos en aras de lograr un mayor acercamiento a la realidad, pero en modelos de
Se evidencia, además que se han utilizado diversos métodos metaheurísticos para la resolución de problemas de
planificación en proyectos de desarrollo de software, y que actualmente los más estudiados para este fin son los
heurísticos basados en poblaciones como es el caso de los Algoritmos Genéticos, los cuales fueron aplicados con
éxito en el modelo propuesto en (I), el cual, se ajusta en gran medida a las características de los entornos
Multi-proyectos de software, pero no queda claro que sucederá si luego de planificado todos los Multi-proyectos que están
ejecutándose, llegara un nuevo proyecto.
Esta investigación permitió observar y analizar otras técnicas que están emergiendo en la actualidad como solución a
estos problemas, ya que la mayor parte de los métodos existentes para programar proyectos de desarrollo de software
se basan en la toma de decisiones centralizada o jerárquica usando modelos globales. Estas soluciones son el uso de
algoritmos basado en agentes o sistemas multiagentes de los cuales se presentan tres soluciones la (A), (C), (F) y la
propuesta que se presenta aquí.
El SMA que se presenta en este trabajo ha considerado un entorno Multi-proyectos sencillo donde se cuenta con un
grupo de recursos limitados y compartidos entre los proyectos. Toma en cuenta las decisiones tácticas y operativas
presentadas, con el objetivo de lograr una propuesta de cronogramas tipo para diferentes situaciones que garantice el
balance de carga entre los recursos. Este enfoque fue aplicado con éxito y simulado en un problema de ejemplo para
validar el método propuesto utilizando una instancia simple de 3 proyectos. Se tomaron en cuenta las situaciones en
donde llegara un nuevo proyecto o el caso en el que a alguna actividad se le cambiara su tiempo de duración, pero
todos estos casos el sistema fue capaz de replanificar y generar nuevamente la programación.
Referencias
Arauzo, J. A., Galán, J. M., Pajares, J., & López-Paredes, A. (2009). Multi-agent technology for scheduling and
control projects in multi-project environments. An Auction based approach. Inteligencia Artificial. Revista
Iberoamericana de Inteligencia Artificial, 13(42), 12-20.
Rodríguez, G., Berdún, L., Soria, Á., Amandi, A., & Campo, M. (2014). Un enfoque inteligente para asistir en la
planificación de proyectos ágiles. 15th Argentine Symposium on Articial Intelligence.
Abdel-Hamid, T. (Febrero de 1989). The dynamics of software project staffing: a system dynamics based simulation
approach. Software Engineering, IEEE Transactions on, 15(2), 109-119.
Abdel-Hamid, T. K., & Madnick, S. E. (December de 1989). Lessons learned from modeling the dynamics of
software development. Commun. ACM, 32, 1426--1438.
Ampuero, M. A. (2009). Un modelo para la asignación de recursos humanos a equipos de proyectos de software.
ISPJAE CEIS Facultad de Ingeniería Informática, La Habana.
Aristizábal González, D. C., Castellanos Trujillo, J. X., & Ordóñez Calderón, C. M. (2017). Indentificación y análisis
de métodos heurísticos basados en reglas de prioridad para la solución de problemas de programación de
múltiples proyectos con recursos restringidos (RCMPSP). Reporte Técnico, ESCUELA COLOMBIANA DE
INGENIERÍA JULIO GARAVITO.
Arribasplata, N., & Cánepa Pérez, C. (2008). Tecnologías Sistema Multiagente de simulación para la planificación de
proyectos software. Revista de Ingeniería de Sistemas e Informática, 5(2).
Brucker , P., Drexl, A., Mohring , R., & Neum, K. (1999). Resource-constrained project scheduling: Notation,
classification, models, and methods. European Journal of Operational Research, 112(1), 3--41.
Chang, C., Jiang, H.-y., Di, Y., Zhu, D., & Ge, Y. (2008). Time-line based model for software project scheduling with
genetic algorithms. Information and Software Technology, 50(11), 1142-1154.
doi:10.1016/j.infsof.2008.03.002
Chaparro Pineda, V., & Castalleñeda Tibaque, J. (2015). Ambiente multiproyecto con recursos restringudos: Una
revisión al estado del arte. Tesis de Grado, UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE
CALDAS.
Chen, L., & Li, K. (2009). Resource-Constrained Multi-project Management with Activity Weights in Software
Engineering. En IEEE (Ed.), 2009 IITA International Conference on Control, Automation and Systems
Engineering (case 2009).
Chicano, J. F. (2007). Metaheuristicas e Ingniería de Software. Departament of Computer Science University of
Malaga.
Demeulemeester , E., & Herroelen, W. (2002). PROJECT SCHEDULING A Research Handbook. KLUWER
ACADEMIC PUBLISHERS.
Dupuy, G., Stark , N., & Salto, C. (2013). Algoritmo evolutivo para el problema de planificación en proyectos de
desarrollo de software. XVIII Congreso Argentino de Ciencias de la Computación.
García Vacacela, R., Pérez Pupo, I., Villavicencio, N., Piñero, P., & Beovides, S. (Noviembre de 2016). Experiencias
usando algoritmos genéticos en la planificación de proyectos. Revista Cubana de Ciencias Informáticas,
Gonsalves, T., Ito, A., & Kawabata, R. (2008). Swarm Intelligence in the Optimization of Software Development
Project Schedule. 32nd Annual IEEE International Computer Software and Applications Conference. IEEE.
doi:10.1109/COMPSAC.2008.179
Hartmann, S., & Briskorn, D. (2010). A survey of variants and extensions of the resource-constrained project
scheduling problem. European Journal of Operational Research, 207(1), 1--14.
Kang, D., Jung, J., & Bae, D.-H. (2011). Constraint-based human resource allocation in software projects. Software:
Practice and Experience, 41(5), 551-577. doi:10.1002/spe.1030
Kolisch , R., & Hartmann, S. (2006). Experimental investigation of heuristics for resource-constrained project
scheduling: An update. European Journal of Operational Research, 174(1), 23--37.
doi:10.1016/j.ejor.2005.01.065
Kolish , R., & Hartman, S. (1999). Heuristic Algorithms for Solving the Resource Constrained Project Scheduling
Problem Classification and Computational Analysis. 147--178.
Lova, A., & Tormos, P. (2001). Analysis of scheduling schemes and heuristic rules performance in
resource-constrained multiproject scheduling. Annals of Operations Research, 112, 263--286.
Luis, S. B. (2015). ALGORITMO GENÉTICO PARA OPTIMIZAR LA PLANIFICACIÓN DEL CRONOGRAMA DE
UN PROYECTO DE SOFTWARE. Tesis de Maestría, Universidad de las Ciencias Informáticas.
Madnick, T. K.-H. (December de 1989). Lessons learned from modeling the dynamics of software development.
Commun. ACM, 32, 1426--1438.
Martínez Jiménez, Y. (2012). A Generic Multi-Agent Reinforcement Learning Approach for Scheduling Problems.
VRIJE UNIVERSITEIT BRUSSEL.
Medrano Broche, B. E. (2013). Planificación de múltiples proyectos de desarrollo de software utilizando métodos
metaheurísticos. Facultad de Matemática y Computación, Universidad de La Habana.
Morillo, D., Moreno, L., & Díaz, J. (2014). Metodologías analíticas y heurísticas para la solución del Problema de
Programación de Tareas con Recursos Restringidos (RCPSP): una revisión. Ingeniería y Ciencia-ing. cienc.,
10(20), 203-227.
Nienaber , R., & Barnard , A. (2007). A Generic Agent Framework to Support the Various Software Project
Management Processes. Interdisciplinary Journal of Information, Knowledge, and Management, 2, 149 -162.
Plekhanova, V. (1998). On project management scheduling where human resource is a critical variable. En Software
Plekhanova, V. (1998). On project management scheduling where human resource is a critical variable. En V. Gruhn
(Ed.). Springer Berlin / Heidelberg. Obtenido de http://dx.doi.org/10.1007/3-540-64956-5
Posada, M. C. (2010). Nuevos métodos Meta Heurísticos para la asignación eficiente, optimizada y robusta de
recursos limitados. Tesis Doctoral, Departamento de Sistemas Informáticos y Computación, Universidad
Politécnica de Valencia.
Victorio, J. N. (2008). Un modelo para la simulación híbrida de la producción de software a medida en un entorno
multiproyecto. Universidad de Sevilla.
Villavicencio, N. (2016). Modelo integrado para la mejora de la productividad en organizaciones orientadas a
proyectos de tecnologías de la información. Tesis de Maestría, Fundación Universitaria Iberoamericana.
Yan, Y., Kuphal, T., & Bode, J. (2000). Application of Multiagent Systems in Project Management. Int. J. Production