Emiliano Pereyra
Analista en Computacin Desarrollador Java Certificado Embajador Proyecto Fedora
Brindar una introduccin al concepto de desarrollo gil de software, y presentar el marco de trabajo de Scrum para llevar adelante dicho concepto
Objetivo
Mtodos giles - Introduccin a Scrum 2
Introduccin
> El concepto nace en febrero de 2001 > Se definieron los valores y principios que
herramientas
> Software que funciona sobre documentacin
exhaustiva
> Colaboracin con el cliente sobre
negociacin contractual
> Respuesta al cambio sobre seguimiento de un
plan
Mtodos giles - Introduccin a Scrum 4
Principio ms importante Los procesos y las herramientas deben ser para la gua y el soporte de los equipos, no al revs Enfatizar los procesos y las herramientas puede ser peligroso cuando el trabajo necesita de creatividad e innovacin
Para tomar decisiones importantes, y de forma inmediata Evitar los desperdicios en el proceso de produccin
Documentacin mantenible
*
El cliente tiene que ser un miembro ms del equipo El contrato tradicional no aporta valor al producto, sino que establece responsabilidades entre las partes para posibles disputas contractuales Se propone interaccin constante, que gue el proyecto y asegure su xito.
Producto enfocado en la necesidad real del cliente, por lo tanto en su satisfaccin Exige planificacin flexible y abierta
bienvenidos, incluso si llegan en etapas avanzadas del desarrollo. Los procesos giles capturan los cambios para que los clientes tengan una ventaja competitiva
10
funcione, desde un par de semanas a un par de meses, con el menor intervalo posible entre entregas
> El cliente y los desarrolladores deben trabajar
motivados. Darles el entorno y apoyo que necesiten, y confiar en que terminarn el trabajo
Mtodos giles - Introduccin a Scrum 11
medida de progreso
> Los procesos giles promueven el desarrollo
sustentable. Los directivos, desarrolladores y usuarios deben ser capaces de mantener una paz constante
Mtodos giles - Introduccin a Scrum 12
Basadas en normas provinientes de estndares seguidos por el entorno de desarrollo Presentan cierta resistencia a los cambios Relativo... Relativo... Impuestas externamente Proceso muchos ms controlado, con numerosas polticas/normas
Depende...
Desarrollada por Kent Beck Potencia las relaciones interpersonales como clave para el xito en desarrollo de software Se basa en retroalimentacin continua entre el cliente y el equipo de desarrollo, y el desarrollo guiado por tests (TDD) Simplicidad en las soluciones implementadas Adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo tcnico
15
Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle Define un marco para la gestin de proyectos Concepto utilizado con xito durante los ltimos 10 aos Est especialmente indicada para proyectos con un rpido cambio de requisitos Principales caractersticas
*
16
Desarrolladas por Alistair Cockburn Conjunto de metodologas Centrada en las personas que componen el equipo, y en la reduccin de artefactos producidos El desarrollo se considera un juego cooperativo de invencin y comunicacin El equipo de desarrollo es un factor clave
* *
Sus impulsores son Jeff De Luca y Peter Coad Define un proceso iterativo que consta de 5 pasos Las iteraciones son cortas (hasta 2 semanas) Se centra en las fases de diseo e implementacin del sistema partiendo de una lista de caractersticas que debe reunir el software
18
Definida por Bob Charettes Basada en su experiencia con la industria automotriz japonesa Los cambios se consideran riesgos; manejados adecuadamente se pueden convertir en oportunidades que mejoren la productividad del cliente Su principal caracterstica es introducir un mecanismo para implementar dichos cambios.
19
Nace en 1994 con el objetivo de crear una metodologa RAD unificada Principales caractersticas: es un proceso iterativo e incremental y el equipo de desarrollo y el usuario trabajan juntos Propone cinco fases: estudio de factibilidad, estudio del negocio, modelado funcional, diseo y construccin, y finalmente implementacin Las tres ltimas son iterativas, adems de existir retroalimentacin a todas las fases.
20
Su impulsor es Jim Highsmith Principales caractersticas son: iterativo, orientado a los componentes software ms que a las tareas y tolerante a los cambios El ciclo de vida que propone tiene tres fases esenciales: especulacin, colaboracin y aprendizaje La revisin de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo.
21
Introduccin a Scrum
22
Problemas Comunes
> Generalmente, las empresas enfrentan los
siguientes problemas
-
Tiempo de llegada al mercado demasiado extendido El ROI estimado frecuentemente se queda corto Alto porcentaje de proyectos fallidos Respuesta a cambios demasiado traumticas y costosas Poca orientacin al cliente Software de baja calidad
23
Problemas Comunes
> Las mtodologas giles justamente fueron
24
Porqu Scrum?
> No es una metodologa en s, sino un marco
de trabajo (framework)
-
predictiva
-
Recordemos... el cambio es nuestro amigo :-) Se pueden corregir en 2-4 semanas! (1 Sprint)
25
Porqu Scrum?
Se est perdiendo en la carrera de relevos...
El enfoque de la 'carrera de relevos' para el desarrollo de productos puede entrar en conflicto con los objetivos de mxima velocidad y flexibilidad. En cambio, una aproximacin holstica o 'enfoque rugbier', donde un equipo trata de recorrer una distancia como una unidad, pasando la pelota y avanzando, puede servir mejor a las exigencias de competitividad de hoy en da.
Hirotaka Takeuchi - Ikujiro Nonaka
The New New Product Development Game Harvard Business Review, January 1986
Mtodos giles - Introduccin a Scrum 26
Porque Scrum?
Enfoque carrera de relevos (sistema de planificacin de etapas programadas - NASA)
27
Caractersticas de Scrum
> Equipos auto-organizados > Progreso del producto realizado cada 2/4
semanas (Sprint)
> Los requerimientos obtenidos son items de la
para un Sprint
> Retroalimentacin continua de equipo en
Sprint
> Piedra angular de Scrum > Iteracin completa de produccin
-
produccin
-
El Proceso Scrum
Anlisis de Negocio
Lista principal de funcionalidades, caractersticas y trabajos requeridos Cada item es priorizado por el Product Owner en funcin de su valor y riego Es constantemente revisado (agregando, quitando y modificando items) para maximizar el xito del equipo y del proyecto
30
El Proceso Scrum
Planificacin Etapa crucial de Scrum Se analizan los items ms importantes (prioritarios) del Product Backlog Se define lo que se va a implementar en el siguiente Sprint Resultado de la planificacin: - Meta del Sprint - Sprint Backlog - Fecha de demo - Lugar y horario de la reunin diaria
31
El Proceso Scrum
Objetivo
Se compone de las tareas ms importantes (prioritarias) del Product Backlog Es lo que se va a implementar en 1 Sprint
32
El Proceso Scrum
Ingeniera / Produccin Control Seguimiento
Ciclo de produccin El equipo trabaja en los items definidos en el Sprint Backlog No se debe cambiar nada de lo planificado (tareas, fechas, etc) Dada una eventualidad, el Product Owner podra pedirle al equipo que cort el Sprint, para replanificar y comenzar uno nuevo
33
El Proceso Scrum
Entrega
Resultado del Spring Parte del producto a construir (mdulo, componente, informe de pruebas...) Potencial despliegue en produccin del incremento realizado
34
Spring Framework
Roles
Reuniones
Planificacin del Sprint Revisin del Sprint Retrospectiva del Sprint Diaria de Scrum
Artefactos
Spring Framework
Roles
Reuniones
Planificacin del Sprint Revisin del Sprint Retrospectiva del Sprint Diaria de Scrum
Artefactos
Scrum Framework
Product Owner
-
Define las caractersticas del producto a construir Decide las fechas de entrega y el contenido de las mismas Responsable de la rentabilidad de producto (ROI) Prioriza las caractersticas de acuerdo a su valor en el dominio Ajusta el alcance y la importancia de las caractersticas en cada iteracin Acepta o rechaza el trabajo realizado
37
Scrum Framework
Scrum Master
-
Promueve los valores y las buenas prcticas de Scrum Elimina los impedimentos que puedan frenar el Sprint Mantiene al equipo enfocado en el objetivo Asegura la funcionalidad y productividad del equipo Responsable de mantener un ritmo sustentable Protege al equipo de interferencias externas
*
Scrum Framework
El Equipo de Desarrollo
-
Roles en Scrum...
Involucrado...
Comprometido!
40
Spring Framework
Roles
Reuniones
Planificacin del Sprint Revisin del Sprint Retrospectiva del Sprint Diaria de Scrum
Artefactos
Reunin de Planificacin
Priorizacin del Sprint
Analizar y evaluar el backlog del Producto Seleccionar una meta para el Sprint
Tecnologa Tecnologa
Decidir como alcanzar la meta del Sprint (diseo de alto nivel) Crear el backlog del Sprint (tareas) a partir de los items del backlog del producto (historias de usuario) Estimar el backlog del Sprint (en lo posible, en puntos, no horas...)
42
Scrum Framework
Planificacin del Scrum
-
El equipo selecciona los items del backlog del producto que se compromete a implementar Se crea el Sprint backlog
*
Cada item (historia de usuario) puede comprender ms de una tarea (caso de uso)
El Scrum Master coordina todos los esfuerzos Se puede considerar realizar un diseo de alto nivel
*
43
Scrum Framework
Reunin Diaria
-
Claves
* *
Duracin de 15' Todos de pie (sensacin de urgencia) Slo los cerdos pueden hablar Podran participar terceros
44
Scrum Framework
Reunin Diaria
-
Scrum Framework
La Revisin del Sprint
-
El equipo presenta lo que se logr durante el Sprint Puede ser en forma de demo Debe ser informal
* *
46
Scrum Framework
Retrospectiva del Sprint
-
Analizar que es lo que est funcionando y que no Dicha revisin no puede superar los 2hs Se realiza despus de cada Sprint Todo cerdillo tiene que participar Objetivo: Volvernos ms efectivos!
47
Spring Framework
Roles
Reuniones
Planificacin del Sprint Revisin del Sprint Retrospectiva del Sprint Diaria de Scrum
Artefactos
Scrum Framework
Backlog del Producto
-
49
Scrum Framework
Backlog del Producto
ID 1 Nombre Exportacin de padrn de clientes Descripcion Generar un txt con los clientes del negocio Imp Est Validacin 4 3 Generar el archivo. El archivo generado debe contener a todos los clientes cargados .. Notas Modelar con UML los puntos claves: formatos de exportacin y traduccin de datos ..
2 ...
..
...
..
..
50
Scrum Framework
Backlog del Sprint
-
Resultado de la reunin de planificacin del Sprint Cada miembro del equipo selecciona item/s en los que va a trabajar
*
Scrum Framework
Grfico Burndown
-
52
Scrum Framework
Grfico Burndown
53
Conclusiones
> Scrum no es una metodologa es si, sino un
framework
> Por lo anterior, sumamente adaptable
-
A Jugarlo...
55
Fuentes
> Mountain Goat Software
-
56
Muchas Gracias!!!
Emiliano Pereyra
Analista en Computacin Desarrollador Java Certificado Embajador Proyecto Fedora