UNIVERSIDAD POLITÉCNICA DE MADRID FACULTAD DE INFORMÁTICA Gestión y Desarrollo Ágil de Proyectos Software con Usabilidad. Un caso práctico Diana Díaz Estrada Jessica Figueroa González Luis García de Paredes Jaques Marcelo Ramos Castillo Master en Dirección y Gestión de Proyectos Software
I.INTRODUCCION A menudo las personas no realizan una planificación de su tiempo sino que van respondiendo a los hechos que surgen en el día a día o reaccionan en función de las demandas y las presiones del entorno que les rodea. Existen numerosas técnicas que intentan ayudarnos a gestionar mejor nuestro tiempo La Técnica Pomodoro (dividir el tiempo dedicado al trabajo en intervalos de 25 minutos, acompañados de un breve descanso; y cada 4 bloques de 25 minutos tomamos un descanso más prolongado).
El Objetivo principal de esta tesis es poner en practica todos los conocimientos de metodologías ágiles “Scrum” y técnicas de usabilidad aprendidas durante el master, a través del desarrollo de una aplicación que nos ayude a administrar nuestro tiempo y a mejorar la productividad (propia y la del equipo de trabajo), basada en la “Técnica Pomodoro”. Para el desarrollo de esta tesis se utilizará la Metodología ágil “Scrum”.
II.SCRUM Metodología ágil de gestión de proyectos. Parte de la visión general del producto. Aporta el máximo valor de negocio posible al producto mediante entregas periódicas e incrementales. Equipos pequeños multidisciplinares y auto- organizados. Presentación
Proceso Scrum Fase Pregame Identificación Historias de Usuario Creación Pila del producto Sprints Duración fija y predeterminada (2-4 semanas) Planificación del Sprint Pila del Sprint Reunión diaria. ¿Qué he hecho? ¿Qué voy a hacer? ¿Qué problemas tengo? Revisión del Sprint: Entrega de funcionalidad y Retroalimentación Mejora el producto. Retrospectiva: ¿Qué ha ido bien? ¿Qué se puede mejorar? ¿Qué ha ido mal? Mejora el proceso Reunión Planificación Sprint Reunión Seguimiento Scrum Revisión Sprint Reunión Retrospectiva
Roles Scrum Dueño del producto Conoce el entorno del cliente y la visión del producto. Responsable de la pila del producto. Scrum Master Responsable del funcionamiento de Scrum Ayuda al equipo y resuelve ploblemas. No es un rol de Jefe Equipo Scrum Auto-organizado, multifuncional Entre 5 y 11 personas Experiencia, muchos conocimientos, comprometidos
Scrum Pila del producto Pila del Sprint Sprint 15 a 30 días Reunión diaria Incremento de producto Reunión de Planificación Revisión del Sprint Dueño del producto Scrum Master
III. USABILIDAD Factor de calidad por el que usuarios específicos usan un software para alcanzar unos objetivos con eficacia, eficiencia y satisfacción en un contexto determinado sin efectos adversos. Afecta tanto IU como al diseño del sistema Debe implementarse desde etapas tempranas Existen cientos de ellas No hay un estándar
Algunas recomendaciones de usabilidad Algunos ejemplos System Status Feedback: Informa sobre estado interno Warning: Informa de acciones con consecuencias imp. Long Action: Procesando acción que toma cierto tiempo Global Undo: Deshace acciones en diferentes niveles Abort: Cancela la ejecución de una acción/aplicación. Structured Text Entry: Previene errores al introducir datos. Multilevel Help: Provee diferentes niveles de ayuda.
IV.ARQUITECTURA Y ENTORNO TECNOLÓGICO Arquitectura: Cliente/Servidor de 3 Capas
Arquitectura Lógica
Entorno Tecnológico Google Code Tortoise SVN Scrum Time Servidor web Apache y de base datos MySQL. Html, Css, JavaScript, Ajax y Php5.
V.SPRINT’S Sprint 0Sprint 1Sprint 4Sprint 3Sprint 2 26/09/11 30/09/11 03/10/ /10/11 17/10/11 28/10/11 31/10/11 11/11/11 14/11/11 25/11/11 Gestión de tiempo Gestión de tareas Gestión de usuarios
Sprint 0 Se realiza el sprint planing Se define product backlog Se priorizan las historias, técnica Silence grouping Gestión de tiempo Gestión de tareas Gestión de usuarios Se define tecnología Configuración de plataforma Retrospectiva
Sprint 3 Sprint planing Se define sprint backlog Análisis y diseño Diagramas Implementación de historias Detalle e implementación Añadir interrupción Anular Pomodoro Resultado Grafico burn down Revisión de sprint Resultado Retrospectiva Resultado
Sprint Planing: Sprint Backlog Historia de usuarioPrioridad Estimaci ó n (Hrs) Horas Reales Usabilidad Re-estimar una tarea18077Multi level help Ordenar tareas de la lista To do today 19097Multi level help A ñ adir interrupci ó n 20055Multi level help Anular pomodoro21044Status feedback Buscar tareas por estado22034Status feedback Buscar tareas por fecha de finalizaci ó n 13023Status feedback Structured text entry Listar resultado de la b ú squeda de tareas Destacar tareas urgentes en la lista “ To do today ” 25053Interaction feedback
Análisis y Diseño: Diagrama caso de uso y de clases
Implementación de historias: Detalle historias Historia de Usuario 21 Título: Añadir interrupción Descripción: Como usuario deseo que registrar las interrupciones que se pueden dar durante el pomodoro Prioridad : 200 Estimación: 5 Horas reales: 5 Criterio de aceptación 1. Validar que si se inicia el pomodoro sin seleccionar una tarea de la lista “To do today” no se habilita el botón interrupciones 2. Validar que luego de seleccionar una tarea de la lista “To do today” e iniciar el pomodoro, se habilita el botón para registrar interrupciones 3. Validar que al presionar el botón de interrupciones se visualiza la cantidad de interrupciones acumuladas 4. Validar que cuando hay interrupciones registradas y se cancela el pomodoro el contador vuelve a cero 5. Validar que se muestra un tooltip al posicionarse sobre el botón interrupciones Patrones de usabilidad Help, tooltip sobre el botón Tareas Modificar interfaz: 1 Crear tabla: 1 Mostrar interrupciones: 1 Usabilidad: 1 Adding in the GUI tooltip on the buttons Refactorizar: 1
Implementación de historias: Detalle historias Historia de Usuario 22 Título: Anular pomodoro Descripción: Como usuario deseo que al registrar cinco interrupciones el pomodoro sea anulado Prioridad : 210 Estimación: 4 Horas reales: 4 Criterio de aceptación 1. Validar que al registrar la quinta interrupción se debe detener el pomodoro y mostrar un mensaje al usuario indicando que el pomodoro será anulado 2. En la lista “To do today” se debe mostrar una columna con los pomodoros anulados en la tarea correspondiente Patrones de usabilidad Status feedback: mensaje indicando al usuario que se anulará el pomodoro Tareas Modificar interfaz: 1 Guardar y mostrar pomodoros anulados: 1 Modificar la funcionalidad alta tarea: 1 Usabilidad: 1 Indicating that error/confirmation message in the corresponding action (message indicating that the user is nulled pomodoro)
Implementación de historias: Detalle historias
36 horas estimadas 34 horas reales
Revisión Sprint: Resultado Historia de usuarioAprobadaRechazadaDetalles Re-estimar una tareax Se incluye patr ó n de usabilidad Warning. Ordenar tareas de la lista To do today x A ñ adir interrupci ó n x Anular pomodorox Buscar tareas por estadox Se incluye patr ó n de usabilidad Progress feedback Buscar tareas por fecha de finalizaci ó n x Se incluye patr ó n de usabilidad Progress feedback Listar resultado de la b ú squeda de tareas Se elimina, se incluye como criterio de aceptaci ó n de historias de b ú squeda. Destacar tareas urgentes en la lista “ To do today ” x
Retrospectiva: Resultado BienA mejorarMal 1.Productividad 2.Puntualidad 3.Metodolog í a 4.Entendimiento 5.Cumplimiento de objetivos 6.Organizaci ó n 7.Repositorio com ú n 8.Reutilizaci ó n de c ó digo 9.Comentarios de c ó digo 10.Daily meeting 1.Documentaci ó n Dise ñ o de arquitectura
VI. Conclusiones Mejora en la capacidad de reducción en la criticidad de cambios. Compromiso del cliente. Producto con alto valor de negocio desde el principio del proyecto. Disminución del riesgo implícito de la integración tardía. Mejora en la capacidad de estimación. Importancia de la usabilidad.
VII. Demo
¿Preguntas?