PROCESO ÁGIL DE DESARROLLO 1 COOPERATIVA DE SOFTWARE LIBRE Ltda. #1 INTRODUCCIÓN El desarrollo de un proyecto de software se planifica en etapas llamadas iteraciones. Las iteraciones se pueden entender como subproyectos que deben proporcionar un resultado completo que el cliente ya pueda empezar a utilizar. Una forma de estructurar el proyecto en iteraciones es dividirlo en objetivos expresados como historias de usuarios que el cliente prioriza. Cada historia de usuario es un requerimiento. 1 Cada día 30 días 3 2 En cada iteración, el equipo evoluciona el proyecto de forma incremental a partir de los resultados completados en iteraciones anteriores. PILA DE HISTORIAS DE ITERACIÓN 4 5 ITERACIÓN VERSIÓN INCREMENTAL DEL PRODUCTO Este marco de trabajo permite la creación de equipos autogestionados, favorece la comunicación entre los integrantes de los mismos y participa al cliente del proceso, lo que tiene una ventaja clave para que el proyecto este de acuerdo a las expectativas y propiedades del cliente. Cada proyecto implementa este marco de trabajo, adaptándolo en función de las necesidades particulares. 4 PROCESO ÁGIL DE DESARROLLO #2 ROLES Dueño del Producto El Dueño del Producto es el encargado de interpretar los requerimientos del cliente y, a partir de esto, definir, ajustar y priorizar las características del producto cada un lapso de tiempo prefijado, así como aceptar o rechazar los resultados del producto. Se asegura de que el equipo de desarrollo realice las funcionalidades que aporten valor al negocio. Es el encargado de escribir las denominadas Historias de Usuario, las prioriza según la necesidad del cliente y las incorpora en la Pila de historias del Producto. Se compone de 3 elementos, conocidos como “las tres Cs”: 1 Card (Ficha) es toda Historia de Usuario debe poder describirse en una ficha de papel pequeña. Si una Historia de Usuario no puede describirse en ese tamaño, es una señal de que estamos traspasando las fronteras y comunicando demasiada información que debería compartirse cara a cara o será necesario dividir la historia en dos o más nuevas historias. 2 Conversación es toda Historia de Usuario debe tener una conversación con el Dueño del Producto. Una comunicación cara a cara que intercambia no solo información sino también pensamientos y opiniones. 3 Confirmación es toda Historia de Usuario debe estar lo suficientemente explicada para que el equipo de desarrollo sepa qué es lo que debe construir y qué es lo que el Dueño del Producto espera. Esto se conoce también como Criterios de Aceptación. 5 Que e e e Una Historias de Usuario es una descripción de una funcionalidad que debe incorporar un sistema de software, y cuya implementación aporta valor al cliente. CCLIEN LIENTTE E e e COOPERATIVA DE SOFTWARE LIBRE Ltda. #2 ROLES Dueño del Producto Las fichas de las Historias de Usuario se escriben en tarjetas con una estructura similar a la siguiente: • Nombre breve y descriptivo. • Descripción de la funcionalidad en forma de diálogo o monólogo del usuario describiendo la funcionalidad que desea realizar. FICHA • Criterio de validación y verificación que considerará terminado y aceptable por el cliente el desarrollo de la funcionalidad descrita. • Otra información que resulte necesaria por el modelo de implementación: Prioridad, Riesgo, Tamaño, etc Para cada proyecto en particular, GENEOS mantendrá comunicación con aquella persona que sea designada por el cliente para este rol. #2 ROLES Facilitador El proceso es guiado por un Facilitador, cuyo trabajo primario es eliminar los obstáculos que impiden que el equipo alcance el objetivo. No es el líder del equipo, asume el rol de facilitador, y su autoridad es, en su mayor parte indirecta, ya que el equipo se autogestiona; debe ser miembro del equipo y trabajar a la par. 6 PROCESO ÁGIL DE DESARROLLO #2 ROLES Facilitador Al inicio del proyecto el equipo debe ponerse de acuerdo en cuanto a las prácticas que se van a implementar, las frecuencias de las reuniones, los artefactos a utilizar y otras consideraciones. Es responsabilidad del Facilitador, gestionar este proceso y garantizar que los acuerdos se respeten. También es responsabilidad del Facilitador, iniciar y cerrar las reuniones diarias y consolidar las métricas para analizar la tendencia en la velocidad del equipo. #2 ROLES Equipo de desarrollo Es quien llevará a cabo el proyecto. El equipo debe ser multidisciplinar y, por lo tanto, deberá contar en su interior con todo el conocimiento necesario para llevar a cabo el proyecto. En momentos puntuales el equipo puede contar con la ayuda de terceros. Posee el derecho y la libertad de realizar lo que sea (dentro de los límites generales del proyecto) para alcanzar el objetivo. Debido a que trabaja como una caja negra debe organizarse a si mismo y a su trabajo, y debe presentar versiones para exhibir los resultados. META 7 COOPERATIVA DE SOFTWARE LIBRE Ltda. #3 DOCUMENTOS Pila de historias del Producto Es un documento de alto nivel para todo el proyecto. Contiene un listado de funcionalidades requeridas por el proyecto en forma de historias de usuarios, priorizadas según la valorización que el cliente considera necesaria. Es abierto y solo puede ser modificado por el Dueño del Producto. Contiene estimaciones realizadas a grandes rasgos, tanto del valor para el negocio, como del esfuerzo de desarrollo requerido. Esta estimación permite dimensionar el trabajo según la disponibilidad del equipo en la planificación de cada etapa. Tablero Pend ient. Ejec . R eali zada Es una herramienta para gestionar tareas dentro del proyecto. El Tablero permite desplazar las historias en forma de tarjetas entre columnas que representan estados. De esta forma nos queda la perspectiva global del alcance en una estructura dinámica (se puede agregar una tarjeta en cualquier momento y en caso de que una tarjeta planeada en una iteración no se llegue a hacer puede volver al Pila de historias del Producto). En general consta de tres columnas que representan las tareas pendientes, las que están siendo ejecutadas y las finalizadas; esta estructura puede incluir nuevas columnas según necesidades específicas del proyecto. Pila de historias de iteración Es un subconjunto de las historias de la Pila de historias del Producto que van a ser abordadas durante una iteración, según su prioridad. Primero deben calcularse las horas que el equipo de desarrollo tiene disponible y luego, respetando la prioridad de la Pila de historias del Producto , comenzar a seleccionar las historias para la iteración. En el tablero, esta sería la primer columna de la izquierda, o “Pendiente”. Este recorte o selección debe realizarse en el momento de la reunión de planificación de la iteración. 8 PROCESO ÁGIL DE DESARROLLO #4 REUNIONES Reunión Diaria Cada día de una iteración se realiza la reunión sobre el estado de un proyecto. Esto se llama reunión diaria y tiene unas guías específicas: • La reunión comienza puntualmente a su hora. • Todos son bienvenidos, pero sólo los involucrados en el proyecto pueden hablar. • La reunión tiene una duración fija de 15 minutos, de forma independiente del tamaño del equipo. • La reunión debe ocurrir en la misma ubicación y a la misma hora todos los días. Durante la reunión, cada miembro del equipo contesta a tres preguntas: 1. ¿Qué has hecho desde ayer? 2. ¿Qué es lo que harás hasta la reunión de mañana? 3. ¿Has tenido algún problema que te haya impedido alcanzar tu objetivo? (el Facilitador debe recordar estos impedimentos). Reunión de Planificación del Iteración Es una reunión que tiene dos partes: la primera parte sirve para seleccionar la Pila de historias de iteración y la segunda parte para preparar la iteración. Los asistentes son el Facilitador, el Dueño del Producto y el Equipo. Otros actores pueden ser invitados por cualquiera de los anteriores para proporcional información adicional sobre el dominio del negocio o la tecnología, pero saldrán una vez proporcionen esta información. El Dueño del Producto debe preparar la Pila de historias de iteración antes de la reunión. En ausencia del Dueño del Producto, el Facilitador debe construir la Pila de historias de iteración antes de la reunión y sustituir al Dueño del Producto. El objetivo de la primera parte es que el Equipo y el Facilitador seleccionen aquellos elementos de la Pila de historias de 9 COOPERATIVA DE SOFTWARE LIBRE Ltda. #4 REUNIONES Reunión de Planificación del Iteración Objetivos Puntos Recursos & tareas Variables Resultados esperados iteración que cree que puede comprometerse a transformar en un incremento de funcionalidad. El Dueño del Producto debe estar disponible para el Equipo durante la segunda parte para responder aquellas preguntas que el Equipo pueda tener acerca de la Pila de historias de iteración. El resultado de la segunda parte de la reunión es la Pila de historias de iteración pulida con las tareas, estimaciones de tareas y asignaciones que dará comienzo al trabajo del Equipo para desarrollar la funcionalidad. La lista de tareas puede no ser completa, pero debe ser suficientemente completa para reflejar el compromiso mutuo por parte de todos los miembros del Equipo y guiarlos durante la primera parte de la iteración, durante la cual el Equipo puede encontrar más tareas a añadir en la Pila de historias de iteración. Revisión de iteración Proporciona un punto de evaluación para el progreso del proyecto al final de cada iteración. El Equipo estimó donde estaría al final de la iteración y estableció su camino hacia ese punto; al final de la iteración presenta el incremento del producto que ha sido capaz de implementar. El Dueño del Producto y otras personas que para el Dueño del Producto sean relevantes en este análisis, determina el incremento del producto, escuchan las historias que el equipo tiene que contar sobre su camino durante la iteración, sobre que fue bien y que fue mal. El propósito es que el Equipo presente al Dueño del Producto y los demás interesados la funcionalidad que está completada. La mayor parte de esta reunión se consume con los miembros del Equipo presentando funcionalidad, respondiendo preguntas del Dueño del Producto y los demás interesados sobre la presentación y descubriendo qué cambios desean estos. Al finalizar, los interesados son encuestados, uno a uno, para recoger sus impresiones, que cambios desean, y la prioridad de esos cambios. El Dueño del Producto discute con los interesados y con el Equipo el potencial cambio de la Pila de historias del Producto basándose en su feedback. 10 PROCESO ÁGIL DE DESARROLLO #4 REUNIONES Retrospectiva Es una reunión posterior a la revisión de la iteración, acordada para revisar la iteración transcurrida y determinar que se puede mejorar en la siguiente. La reunión de revisión se centra en ‘qué’ está construyendo el Equipo, la reunión de retrospectiva se centra en el ‘cómo’. La motivación para realizar esta reunión es lograr la mejora continua del proceso de desarrollo. Esta no es una metodología fija sino un marco metodológico que debe ser continuamente adaptado a cada proyecto, equipo o empresa. Dura entre 30 minutos y 1 hora, complementando dinámicamente los pasos: 1 Matriz de aprendizaje Consiste hacer una tabla con cuatro cuadrantes y escribir: • Qué fue bien • Qué no fue bien • Ideas o cosas para hacer de otra manera • Reconocimientos 2 Decidir qué cosas hacer 3 Analizar el estado de ánimo del equipo Buscar acciones concretas que tomar en la siguiente iteración; no deben ser demasiadas iniciativas, uno o dos experimentos y asegurarse de tenerlos en cuenta durante las reuniones diarias y analizarlos en la siguiente retrospectiva. Cada integrante del equipo expresa cómo se sintió durante la última iteración y se asigna un valor de conformidad que va del 1 a 3 (3) Estoy muy satisfecho con el trabajo en equipo. (2) Bastante satisfechos, la mayor parte trabajamos bien. (1) Estoy disconforme y poco satisfecho con el trabajo en equipo. 4 Cerrar la retrospectiva Finalizar la retrospectiva de manera contundente: no permitir que haya cosas que se posterguen hacia otras reuniones. Hacer una retrospectiva de la retrospectiva y cerrar la sesión. 11 [email protected] I Gral Paz 440 I www.geneos.com.ar Tandil I Argentina