TUNE-UP Software Process Metodología y herramienta de apoyo...

4
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)

Transcript of TUNE-UP Software Process Metodología y herramienta de apoyo...

Page 1: TUNE-UP Software Process Metodología y herramienta de apoyo …lbd.udc.es/jornadas2011/actas/JISBD/JISBD/S3/Tools/07... · 2012-10-15 · estrecha colaboración con empresas valencianas

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)

Page 2: TUNE-UP Software Process Metodología y herramienta de apoyo …lbd.udc.es/jornadas2011/actas/JISBD/JISBD/S3/Tools/07... · 2012-10-15 · estrecha colaboración con empresas valencianas

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.

Page 3: TUNE-UP Software Process Metodología y herramienta de apoyo …lbd.udc.es/jornadas2011/actas/JISBD/JISBD/S3/Tools/07... · 2012-10-15 · estrecha colaboración con empresas valencianas

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.

Page 4: TUNE-UP Software Process Metodología y herramienta de apoyo …lbd.udc.es/jornadas2011/actas/JISBD/JISBD/S3/Tools/07... · 2012-10-15 · estrecha colaboración con empresas valencianas

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.