1 SCRUM (el modelo de desarrollo que vamos a usar en este curso) Universidad de los Andes Demián Gutierrez Marzo 2011
2 ? formas de desarrollar software
3 ¿Formas de Desarrollar Software? Métodos Tradicionales “pesados” Concentrados en el proceso, burocráticos Métodos ágiles (la revolución de la agilidad) Concentrados en el producto Formas de Desarrollar Software Artesanal Sin método, plan, gestión o seguimiento Usando “Ingeniería” Con un método y estrategia bien definida, con una adecuada planificación y gestión Mala idea (muy mala)
4 sobre los métodos “pesados”
5 Jens Østergaard, a fully qualified Certified Scrum Master Trainer, gives an introduction to Scrum and talks about why is Scrum so hard http://www.youtube.com/watch?v=q3t8twm3aU k
6 Talking about IT department http://www.youtube.com/watch?v=q3t8twm3aU k
7 People didn't know what the IT was We where the IT department we took care of IT, that was our responsibility http://www.youtube.com/watch?v=q3t8twm3aU k
8 Whatever we did the organization was happy And they thought it was like magic Because they HAD NO CLUE have a clue of what we where doing http://www.youtube.com/watch?v=q3t8twm3aU k
9 I remember when it came our first project leader in 1989 and told us: YOU CAN'T TALK TO THE USERS ANY MORE http://www.youtube.com/watch?v=q3t8twm3aU k
10 Every thing has to go through me......I have to have the helicopter view http://www.youtube.com/watch?v=q3t8twm3aU k
11 you kind of loose your sense of responsibility more, more processes more, more procedures http://www.youtube.com/watch?v=q3t8twm3aU k
12 less and less creativity and more, more telling me how to do it http://www.youtube.com/watch?v=q3t8twm3aU k
13 It was about responsibility It was about passion http://www.youtube.com/watch?v=q3t8twm3aU k About Software:
14 what happens when you do SCRUM? you are challenging the organization the way they use to work the way they are setup to work http://www.youtube.com/watch?v=q3t8twm3aU k
15 modelos ágiles (SCRUM)
16 Modelos ágiles (SCRUM / Principios) “Dado que los cambios nunca van a dejar de existir, lo que necesitamos es ser capaces de gestionar los proyectos de una forma más ágil” la naturaleza del software es el cambio
17 Modelos ágiles (SCRUM / Principios) Japón, años 80 Takeuchi y Nonaka basado en las mejores prácticas de las empresas con buenos resultados de rapidez y flexibilidad en la producción de la época Xerox, Canon, Honda, NEC, Epson, Brother, 3M, Hewlet Packard
18 Modelos ágiles (SCRUM / Principios) inicia en el ámbito de desarrollo de productos tecnológicos (no necesariamente software) pero se puede aplicar con éxito a otras áreas de gestión
19 Modelos ágiles (SCRUM / Principios) Es mejor tener equipos pequeños y auto-organizados: formados por miembros de diferentes disciplinas capaces de organizarse por si mismos con una comunicación transparente En general, de esta forma se suelen obtener mejor resultados. De esta forma, todos los miembros se comprometen y están motivados
20 Modelos ágiles (SCRUM / Principios) La palabra SCRUM procede del vocabulario del rugby y significa melé; es decir, esa “figura” en la que los compañeros del equipo se amontonan, forman una piña y empujan todos en la misma dirección
21 ¿proceso?
22 Modelos Ágiles (SCRUM / Proceso) ¡SCRUM!
23 requisitos “features” de la aplicación sprints (iteraciones) (cortos) requisitos para el sprint (iteración) resultado (producto) (entregas frecuentes) reunión diaria tareas de < 16 horas Modelos Ágiles (SCRUM / Proceso)
24 etcétera... iteración sprint 1 iteración sprint 2 iteración sprint 3 no se comienza un sprint hasta que se termina el anterior
25 ¿requisitos?
26 Historias de Usuarios (SCRUM / Requisitos) Los requisitos del producto se capturan teniendo en cuenta la visión del cliente y del usuario Para ello se utilizan historias de usuario, que son unas sencillas tarjetas en las que se recoge de forma esquemática, sencilla y en un lenguaje claro una interacción entre el usuario y el sistema Generación de Factura El usuario introduce la información del cliente. Si el cliente ya está registrado con sólo introducir la cédula se deben cargar sus datos. Luego se ingresan los elementos a facturar y las cantidades de cada elemento. Finalmente el sistema registra la factura y es capaz de imprimirla en la impresora local asociada al terminal del usuario
27 Historias de Usuarios (SCRUM / Requisitos) Las historias de usuario sirven de “recordatorio” de un grupo de características que es necesario implementar en el sistema. Antes de implementar una característica se produce una discusión con el usuario y se refina y extiende la información de la historia de usuario Generación de Factura El usuario introduce la información del cliente. Si el cliente ya está registrado con sólo introducir la cédula se deben cargar sus datos. Luego se ingresan los elementos a facturar y las cantidades de cada elemento. Finalmente el sistema registra la factura y es capaz de imprimirla en la impresora local asociada al terminal del usuario
28 Historias de Usuarios (SCRUM / Requisitos) También es posible escribir un breve documento donde se describa la visión general del sistema, esto es útil para tener una visión global de lo que se está haciendo
29 Modelos Ágiles (SCRUM / Requisitos) El product backlog tiene todos los requisitos del producto Se puede ver como una lista de todo lo que el usuario/cliente desea del producto (a wishlist)
30 Modelos Ágiles (SCRUM / Requisitos) Los requisitos del product backlog se priorizan y se asignan a los distintos sprints planificados, es decir, al sprint backlog de cada sprint
31 Modelos Ágiles (SCRUM / Requisitos) Antes de comenzar el sprint, de ser necesario, se conversa con el cliente y se refinan las historias de usuario, usando cualquier técnica deseada para especificar requisitos
32 Modelos Ágiles (SCRUM / Requisitos) Una vez comenzado el sprint no se añaden nuevas historias de usuario al sprint backlog En general, no hay cambios, ni en duración ni en objetivos Sin embargo siempre es posible añadir nuevas historias de usuario al product backlog y/o cambiar las prioridades de las historias existentes
33 ¿roles?
34 SCRUM (Roles) Rol: Las acciones o actividades asignadas o requeridas de una persona o grupo (“La función del maestro”, “El gobierno debe de...”) Rol: Un personaje o parte escenificada por un actor; El comportamiento esperado de un individuo en la sociedad. La función o posición de algo.
35 SCRUM (Roles) Un cerdo y un pollo van caminando por la carretera. El pollo le dice al cerdo:* -Oye, ¿por qué no abrimos un restaurante? El cerdo se vuelve y le responde: -Buena idea, ¿cómo quieres que lo llamemos? El pollo se lo piensa y propone: -¿Por qué no lo llamamos “Huevos con jamón”. -No cuentes conmigo - responde el cerdo -. En ese caso, tú sólo estarías IMPLICADO, mientras que yo estaría realmente COMPROMETIDO. * Fuente: historia jocosa usada para ilustrar los tipos de roles en SCRUM
36 SCRUM (Roles) ese cuento ha sido inmortalizado de muchas formas
37 SCRUM (Roles) cerdos (realmente comprometidos) pollos (involucrados )
38 SCRUM (Roles / Product Owner) Usuarios / Ejecutivos Son los que usarán y eventualmente pagarán el producto
39 SCRUM (Roles / Product Owner) Product Owner: Es el “dueño del producto”. Representa la voz del cliente y aporta la visión de negocio. Se encarga de escribir las historias de usuario, les da prioridad y las ubica en la lista de requisitos del producto. (Cerdos)
40 Product Owner: Se encarga de decidir que va y que no va en el product backlog, así como definir las prioridades de las distintas historias de usuario SCRUM (Roles / Product Owner)
41 Scrum Master Tiene como principal papel el de dejar el camino libre de obstáculos e impedimentos para que el resto del equipo consiga el objetivo del sprint. SCRUM (Roles / Scrum Master)
42 Scrum Master Organiza reuniones, hace seguimiento del trabajo que se está llevando a cabo y apoya en la planificación de los sprints / entregas SCRUM (Roles / Scrum Master)
43 Equipo Está compuesto por los roles tradicionales: desarrolladores, probadores, etc. SCRUM (Roles / Scrum Master)
44 ¿gestión, control y seguimiento?
45 Modelos Ágiles (Gestión y Seguimiento / Reunión Diaria) Reunión Diaria: Es una figura fundamental en SCRUM. Tiene que reunirse TODO el equipo y debe hacerse según ciertas reglas
46 La reunión es diaria y se hace siempre a una hora predefinida, normalmente por la mañana Reunión Diaria: REGLAS: Modelos Ágiles (Gestión y Seguimiento / Reunión Diaria) Es importante que todos los miembros del equipo acudan puntuales
47 La reunión debe durar alrededor de 15 minutos Reunión Diaria: REGLAS: Modelos Ágiles (Gestión y Seguimiento / Reunión Diaria) Se realiza de pie, para mantener el máximo de concentración y atención Todos los roles son bienvenidos, pero sólo los cerdos pueden hablar
48 En la reunión se realizan las siguientes 3 preguntas clave: ¿Qué has hecho desde ayer? ¿Qué tienes planeado hacer mañana? ¿Has encontrado algún problema para conseguir tu objetivo? Reunión Diaria: REGLAS: Modelos Ágiles (Gestión y Seguimiento / Reunión Diaria) ¿les suena conocido?
49 La transparencia es un aspecto muy importante en estas reuniones Todos los miembros saben que están haciendo los demás, y los problemas deben ser sacados a la luz en cuanto se detectan Reunión Diaria: REGLAS: Modelos Ágiles (Gestión y Seguimiento / Reunión Diaria) ¿les suena conocido?
50 Modelos Ágiles (Gestión y Seguimiento / Scrum Burn Down) EJE Y Trabajo restante, horas, puntos de función u otra unidad de medida EJE X Día o fecha del sprint Esto es responsabilidad del Scrum Master
51 Las siguientes hojas de excel fueron tomadas de: http://agilesoftwaredevelopment.com / http://www.youtube.com/watch?v=WqgZCiqiYA Y Un video explicativo en:
52 Modelos Ágiles (Gestión y Seguimiento / Scrum Burn Down)
53
54 Modelos Ágiles (Gestión y Seguimiento / Task Boards) Se puede poner en una pared en la oficina y sirve para hacer el seguimiento de las tareas del sprint en curso (también se puede usar alguna herramienta de issue/task tracker) (y si no me creen...) http://www.mountaingoatsoftware.com/scrum/task- boards
55 http://www.mountaingoatsoftware.com/scrum/task- boards Modelos Ágiles (Gestión y Seguimiento / Task Boards)
56 http://www.mountaingoatsoftware.com/scrum/task- boards Modelos Ágiles (Gestión y Seguimiento / Task Boards)
57 RESUMEN (Lo siento, es que el dibujo me gustó ;- )
58 video recomendado (en ingles) http://www.youtube.com/watch?v=Q5k7a9YEoU I Hamid Shojaee Scrum Master in Under 10 Minutes
59 ¿SCRUM y los cursos de IS / BD?
60 ¿quiénes desempeñaran que roles a lo largo del curso? SCRUM (¿Cómo vamos a hacer SCRUM en el curso?)
61 ¿Cuánto tiempo durarán los sprints? SCRUM (¿Cómo vamos a hacer SCRUM en el curso?) En principio, 3 semanas, a medida que avance el curso los reduciremos a 2, y al final, probablemente serán de 1 semana
62 tenemos 18 semanas emplearemos entre 3-4 en tener la visión inicial del producto y capacitarnos con las tecnologías a usar 2 sprints iniciales de unas 3 semanas (van 10 semanas) 3 sprints de unas 2 semanas (Van 16 semanas) 2 sprints finales de una 1 semana (Van 18 semanas) SCRUM (¿Cómo vamos a hacer SCRUM en el curso?)
63 ¿reunión diaria? SCRUM (¿Cómo vamos a hacer SCRUM en el curso?) No, va a ser complicada hacerla diariamente, pero deberíamos discutir en clase los avances del proyecto y acordar al menos una reunión semanal con todo el equipoLos equipos deberían tratar de reunirse (al menos 15) minutos lo más que puedan ¿Puedo sugerir antes / después de cada clase? Recuerden que tenemos el foro como canal de comunicación constante
64 ¿gestión? SCRUM (¿Cómo vamos a hacer SCRUM en el curso?) si, por medio de las hojas de excel y el scrum burn down, así como por medio del issue tracker de google code
65 Gracias ¡Gracias!