Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
TUNE-UP Software Process
Metodología y herramienta de apoyo para la gestión ágil de
proyectos de desarrollo y mantenimiento de software
Patricio Letelier Torres
Depto. de Sistemas Informáticos y Computación (DSIC)
Universidad Politécnica de Valencia (UPV)
Camino de Vera s/n,
46022 Valencia, España
[email protected], www.tuneupprocess.com
Abstract. TUNE-UP ha sido desarrollada en el grupo ISSI (Ingeniería de Software y
Sistemas de Información) del departamento DSIC de la UPV, siendo el fruto de la
estrecha colaboración con empresas valencianas en diversos proyectos de software, y de
la experimentación y refinamiento en asignaturas de último curso de Ingeniería
Informática. TUNE-UP incorpora los principales elementos de las metodologías ágiles lo
cual le permite ser configurada para trabajar siguiendo Scrum o Extremme Programming
(XP). Sin embargo, las características de TUNE-UP asociadas a la gestión del proyecto
van más allá que las ofrecidas por las metodologías y herramientas ágiles, lo cual permite
complementar la forma de trabajo del equipo con aspectos no incluidos en Scrum o
XP. Para la organización y fácil acceso al trabajo del equipo TUNE-UP aporta una
innovadora variación de la técnica Kanban, la cual se integra con un simple pero potente
mecanismo de workflows flexibles, permitiendo orquestar de forma automática gran parte
de la colaboración necesaria entre actividades.
Keywords: Gestión de proyectos, metodologías ágiles, Scrum, XP, Kanban.
1 Introducción
TUNE-UP (www.tuneupprocess.com) es una metodología y su herramienta, ambas dirigidas a
apoyar la gestión ágil de proyectos de desarrollo de software. Los conceptos básicos de TUNE-
UP son:
− Iteración. Es el período de tiempo durante el cual el equipo trabaja en conseguir una nueva
versión del producto. Tal como en Scrum, en TUNE-UP se promueve que las iteraciones no
sobrepasen las 4 semanas.
− Work Unit (WU). Las WUs son las unidades de trabajo que se incluyen en una iteración.
Usamos este concepto para englobar cualquier tipo de cambio en el producto (nuevo
requisito, mejora de requisito existente o corrección de un fallo), y también para referirnos a
cualquier otra tarea que se enmarque en el trabajo de una iteración.
− Agente o miembro del equipo. Es un participante en el trabajo de la iteración (puede o no
ser del equipo de desarrollo)
Las principales características de TUNE-UP son:
− Ofrece el Dashboard más completo para el seguimiento de cada versión.
− Gestión de Requisitos integrada con el desarrollo iterativo e incremental.
− Gestión simultánea de varios productos y versiones.
− Desarrollo Test-Driven basado en Pruebas de Aceptación.
− Workflows configurables para ser aplicados a cada producto y WU, dependiendo de sus
necesidades.
− Gestión de documentos asociados a WUs, incluyendo control de versiones.
− Soporte para Kanban, Scrum y Scrumban.
− Mensajes y reuniones en el contexto de cada WU.
− Alertas y notificaciones de eventos.
− Soporte para equipos cross-functional y auto-gestionados.
− Múltiples ayudas para la selección correcta del trabajo que debe realizar cada miembro del
equipo.
2 TUNE-UP ¿por qué otra herramienta?
Actualmente existe una veintena de herramientas específicas (y que valga la pena destacar)
para apoyar la gestión ágil de proyectos de desarrollo de software. En términos globales
podemos afirmar que presentan claramente las siguientes desventajas frente a TUNE-UP:
• Requieren un esfuerzo de adaptación e interpretación de la metodología que se quiera
utilizar con la herramienta. TUNE-UP tiene asociada una propuesta metodológica
configurable al enfoque de Scrum y opcionalmente complementado/extendido con
aspectos de metodologías más tradicionales.
• Los mecanismos para gestión del esfuerzo son muy rudimentarios. En TUNE-UP se
ofrecen varias alternativas para gestionar el esfuerzo estimado e invertido en cada WU,
proporcionando además ayudas automáticas para facilitar dicha gestión.
• No ofrecen workflows configurables flexibles para la gestión del trabajo colaborativo.
Algunas herramientas ofrecen workflows pero sólo basados en estados, no en actividades,
sólo TUNE-UP proporciona workflows integrados con la técnica Kanban y además
flexibles, característica indispensable en el contexto dinámico y colaborativo del desarrollo
de software.
• El desarrollo dirigido por las pruebas (TDD) NO es protagonista. En TUNE-UP se puede
optar por definir las WUs a través de Pruebas de Aceptación. Trabajando de esta forma se
ofrece un completo conjunto de funcionalidades que permiten orquestar todo el ciclo de
vida de una unidad de trabajo en torno a sus Pruebas de Aceptación.
• Sólo TUNE-UP integra la gestión de requisitos del producto con su desarrollo iterativo e
incremental. Todos los cambios en el producto se gestionan como WUs que se asocian a
elementos afectados en la estructura del producto. Se ofrecen facilidades para conocer la
historia de cambios que ha tenido, tiene y tendrá cada requisito del producto.
3 Módulos de TUNE-UP
Personal Planner (PEP) El PEP (Fig. 1) es el centro de operaciones de cada agente. En él se presenta todo el trabajo no
finalizado en el cual tiene participación el agente. La información está organizada al estilo de
los populares Kanban, pero integrando de forma efectiva la visualización no sólo del trabajo de
un producto-versión, sino de múltiples productos y versiones, y junto con alertas,
notificaciones, mensajes y reuniones. Así, el PEP ayuda al agente a priorizar y seleccionar el
trabajo que debe realizar en cada momento.
Fig. 1. Personal Planner (PEP) Fig. 2. Work Unit Manager (WUM)
Work Unit Manager (WUM) El WUM (Fig. 2) es el espacio en el cual se integra toda la información de una WU. En este
espacio los agentes trabajan de forma colaborativa, compartiendo información y centralizando
también toda la comunicación asociada a la WU (mensajes y reuniones). Entre las facilidades
que ofrece el WUM destacan: tracking detallado de toda las acciones realizadas en la WU
(quién y cuándo y en que actividad ha trabajado), área de documentación con control de
versiones (para subir y compartir ficheros específicos de la WU), especificación de la WU
contextualizada en la estructura del producto, seguimiento detallado del progreso de la WU
mediante aplicación de pruebas de aceptación, envío y recepción de mensajes, gestión de
reuniones, y gestión de participantes en la WU.
Requirements Manager (REM) El REM (Fig. 3) es la implementación de una forma innovadora de gestionar los productos
software y se basa en TDRE (Test-Driven Requirements Engineering). Los requisitos y las
pruebas de aceptación se integran para ofrecer precisión en la gestión de cambios del producto.
Este enfoque tiene múltiples ventajas, algunas de ellas son: (a) los requisitos especificados
como pruebas constituyen un compromiso explícito y verificable entre el cliente y el equipo de
desarrollo, (b) no es necesario derivar pruebas a partir de requisitos pues éstos están ya
especificados como pruebas, (c) las pruebas de aceptación proporcionan mayor visibilidad del
estado de avance del proyecto (por ejemplo, una WU podría tener un 60% de sus pruebas OK,
un 20% KO y otro 20% aún sin aplicarse, y (d) todo el proceso gira en torno a las pruebas de
aceptación (Test-Driven) integrando y sincronizando el trabajo de los agentes del proceso.
Fig. 3. Requirements Manager (REM) Fig. 4. Version Contents & Tracking (VCT)
Version Contents & Tracking (VCT) El VCT (Fig. 4) ofrece vistas integradas para gestionar y supervisar las versiones de los
productos. Permite realizar el balanceo de carga de los agentes, visualizar relaciones de
dependencia entre WUs y observar el impacto que tienen las en la estructura de requisitos del
producto.
TUNE-UP Dashboard (Fig. 5)
TUNE-UP genera diariamente una snapshot del estado de los tiempos y asignaciones de
actividades en cada producto y versión. En base a dichas snapshots se elabora un Burn Down
Chart para cada una de las iteraciones. Además, este diagrama se acompaña de una tabla
denominada Daily Events que apoya la información del Burn Down Chart con detalles de los
eventos ocurridos cada día (nuevas WUs, eliminación de WUs, re-estimaciones, actividades sin
estimación, etc.).
Fig. 5. TUNE-UP Dashboard Fig. 6. Un ejemplo de workflow
Workflows TUNE-UP incorpora un sencillo pero potente motor de workflows que automatiza el flujo de
trabajo en los Kanban de los miembros del equipo. Así, cuando un agente finaliza una
actividad, el workflow asociado al trabajo encadenará el trabajo "Done" de un agente con el
trabajo "To Do" de continuación para otro agente. Un producto tendrá asociado un conjunto de
workflows, los cuales pueden configurarse en cualquier momento, permitiendo especificar y
poner en marcha las mejoras de proceso del equipo. Los workflows de TUNE-UP son flexibles
en el sentido que permiten saltos de actividad hacia adelante o hacia atrás, cambios de agentes,
trabajo en paralelo, etc., incluso una WU puede cambiar de workflow. En la Fig. 6 se muestra
un ejemplo sencillo de workflow.