Figura 3.A: Esquema conceptual de IVS.
El primer paso del enfoque consiste en la definición del proyecto. En este punto, el Scrum Master debe proveer a IVS toda la información del proyecto. Esta información consiste de las personas disponibles para el mismo, el Product Backlog , las restricciones y preferencias
sobre el proyecto. El primer paso de la definición consiste en la selección de las personas, denominadas recursos, que serán las encargas de llevar a cabo las tareas. Cada recurso posee ciertas habilidades y un nivel de experiencia en cada una de ellas.
Una vez decididos los recursos que participarán del proyecto, el siguiente paso es la definición del Product Backlog. El Product Backlog consiste en el conjunto de todas las User Stories del proyecto. Estas User Stories involucran las tareas que deben realizarse, el tiempo estimado de resolución de cada una y el tiempo máximo que puede usar un recurso para la resolución de la misma. Así mismo, para que una tarea pueda ser resuelta, es necesario que los recursos asignados posean ciertos conocimientos puntuales. Estos conocimientos deben ser especificados por el Scrum Master al momento de detallar la tarea.
Dado que pueden existir varios recursos que posean los conocimientos requeridos, el Scrum Master puede desear o no que un recurso específico sea el encargado de resolver una determinada tarea. En este contexto, IVS permite al Scrum Master la especificación de restricciones y preferencias. Muchas veces estas especificaciones dependen del conocimiento de la organización, o de lo deseado por el administrador del proyecto en el momento de armar el plan. Por ejemplo, en un proyecto el administrador puede desear que un recurso desarrolle (o no) una determinada tarea.
El almacenamiento de la información definida en la etapa de “Definición del proyecto” se llevó a cabo a partir del enfoque planteado en (Villaverde, 2009). Allí se define el modelo de una Memoria Organizacional (MO) basada en Perfiles de Usuario, asociados a cada miembro de la organización que participa en un proyecto. Estos perfiles están compuestos por un conjunto de características propias de cada usuario. Estas características permiten obtener patrones de comportamientos de cada uno durante el ciclo de vida del proyecto. La función principal de la MO consiste en el almacenamiento de los perfiles de usuario junto con toda la información relacionada a los proyectos sobre los que se ha trabajado.
Una vez definido el proyecto, el siguiente paso del enfoque consiste en la planificación de un Sprint. Para iniciar esta planificación, el Scrum Master debe seleccionar del Product Backlog un conjunto acotado de User Stories. Este conjunto define el Sprint Backlog. En este
punto, IVS obtiene datos históricos desde la MO, provenientes de sprints y/o proyectos anteriores, y los utiliza para ofrecer asistencia al Scrum Master en la asignación de los recursos a las tareas. Estos datos contienen información sobre como fue el desempeño de los recursos en esos proyectos anteriores. Este desempeño es medido por las calificaciones obtenidas en base a los criterios que el administrador consideró relevantes. Estos criterios pueden incluir, por ejemplo, el tiempo que tardó el recurso en realizar la tarea, requerimientos de la misma, habilidades del recurso y su integración con otros recursos.
Contando con los datos históricos y las tareas incluidas en el Sprint Backlog, IVS se basa en un Algoritmo de Planning (AP) para realizar la planificación. El algoritmo de planning utilizado en este trabajo es KMUCPop (Berdún, 2009). KMUCPop es un algoritmo que ve a los problemas de planificación de proyectos como problemas de planning con preferencias. Un problema de planning plantea un problema de planificación como un conjunto de estados y acciones. Una solución a un problema de planning dado es una secuencia de acciones, que al ser ejecutadas desde un estado inicial, permiten alcanzar el estado final. El agregado de preferencias y restricciones en el armado de la solución es lo que potencia una solución sobre otra posible.
En base a la definición anterior, para resolver el problema de planificación de proyectos, nuestro enfoque transforma la información del proyecto en un conjunto de estados y acciones de planning. El estado inicial está conformado por el Sprint Backlog, recursos a utilizar, preferencias y restricciones definidas por el Scrum Master y los datos históricos obtenidos de la MO. Las User Stories conforman las acciones disponibles para el problema de planning. De esta forma los recursos requeridos por las User Stories conformaran las precondiciones de las acciones del problema de planning, y de manera similar los resultados obtenidos en las post- condiciones. Por último, el estado final que se desea alcanzar, es un estado del proyecto en el cual todas las User Stories definidas hayan sido tratadas. Esto último significa que estas User Stories podrían ser asignadas a recursos o postergadas para futuros sprints, en caso de que no sea posible una asignación.
Cuando se solicita la planificación de un sprint, AP intentará alcanzar el estado final encontrando una asignación de recursos para cada User Story. Se puede decir que AP tratará
de ejecutar todas las acciones disponibles cumpliendo, para cada una de ellas, con sus precondiciones iniciales. AP tratará de realizar estas asignaciones de manera tal de maximizar la eficiencia de resolución del sprint. Para esto buscará en los datos históricos como ha sido calificada una asignación previa similar a la que se está evaluando. El objetivo es encontrar la asignación más adecuada para una tarea, en función de la conveniencia del sprint. Por lo tanto, debido a que el estado inicial está compuesto por datos históricos y preferencias del usuario, AP obtendrá un plan de trabajo eficiente y que refleja las decisiones tomadas por el administrador y en la organización en sprints y proyectos anteriores.
Una vez que AP logra armar una planificación de un Sprint, se muestra al Scrum Master la solución alcanzada. Esta solución mostrará la asignación de recursos sugerida para cada User Story, conformando el Sprint Backlog propuesto.En este punto, el Scrum Master analiza la propuesta y puede tomar diferentes cursos de acción. Puede optar por rechazar la propuesta; modificar el Sprint Backlog original y realizar una nueva planificación; o directamente aceptar la propuesta.
En caso de rechazar la propuesta, el Scrum Master puede, o no, realizar una nueva definición del Sprint Backlog, para luego solicitar una nueva planificación. En caso de solicitar una nueva planificación incorporando nuevas restricciones, pero sobre el Sprint Backlog propuesto, se repite el proceso de planificación de manera que el administrador solo lo acepte cuando se encuentra satisfecho con el resultado. Una vez aceptada la sugerencia, el Sprint Backlog Propuesto se encuentra listo en la herramienta y se da inicio la ejecución real del proyecto dentro de la misma.
La última etapa de este enfoque, denominada Sprint Retrospective se inicia en el momento de la finalización de la ejecución del proyecto. En esta etapa, el Scrum Master debe realizar la calificación de los recursos. Como se mencionó anteriormente, esta calificación será utilizada en futuras planificaciones por AP, para realizar asignaciones cada vez más eficientes. Junto con las calificaciones, el Scrum Master puede tomar otras decisiones que afecten futuras planificaciones. Por ejemplo, si un recurso tuvo un desempeño destacado, puede optar por incrementar el nivel que posee el mismo en cada una de sus habilidades, actualizando de esta manera la información de la organización.
Es importante notar que IVS sigue un proceso iterativo. Durante este proceso se almacena constantemente la información generada producto de la interacción de IVS con el Scrum Master. Esta información surge principalmente del análisis de las preferencias del Scrum Master así como de la evaluación de los desempeños de los recursos. El volumen creciente de información almacenada en la MO permitirá a IVS ofrecer planificaciones cada vez más certeras, convirtiéndose en una herramienta de gestión de proyectos que satisface las necesidades de planificación actual de la organización y del Scrum Master.