Este documento presenta información sobre Scrum, un marco ágil para el desarrollo de software. Explica los orígenes de Scrum en Japón en los años 80, su aplicación en el desarrollo de software a partir de 1995, y sus principios clave como el trabajo en equipos pequeños y auto-organizados. Describe los roles, artefactos, ceremonias y procesos de Scrum, incluyendo el product backlog, sprint backlog, daily scrum, sprint planning y retrospectiva. Finalmente, ofrece ejemplos de cómo se estiman historias de usuario y se realiza el
2. Esta presentación contiene en parte material
tomado de la presentación de
Xavier Albalalejo “La alternativa Ágil”
2
3. Modelos ágiles
(SCRUM / Origenes, Desarrollo de Productos)
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
3
4. Modelos ágiles
(SCRUM / Origenes, Software)
OOPSLA ’95 (conferencia)
Jeff Sutherland y Ken Schwaber
ScrumAlliance (2002)
Ken Schwaber y Mike Cohn
Scrum.org (2009)
Ken Schwaber
4
5. 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
(auto-organización)
Con una comunicación transparente
De esta forma, en general,
se suelen obtener mejores resultados y
todos los miembros del equipo están
más comprometidos y motivados
5
6. 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
6
9. Modelos Ágiles
(SCRUM / Roles)
Product Owner
(dueño del producto)
Team / Equipo
(dueños del desarrollo)
Scrum Master
(dueño facilitador del proceso)
cerdos
Los demás: Clientes,
Ejecutivos, Usuarios, etc...
no son más que pollos ;-) 9
10. SCRUM
(Roles)
ese cuento ha sido
inmortalizado de
muchas formas
10
16. Modelos Ágiles
(SCRUM / Artefactos)
requisitos “features” de
la aplicación
(de todo el producto)
resultado / producto
(entregas frecuentes)
tareas de < 16 horas definición de listo
(sólo del sprint) (Definition of Done)
3 artefactos
16
17. Modelos Ágiles
(SCRUM / Artefactos)
artefactos, herramientas
y otros radiadores de información
Tablero de Kanban Scrum Burn Down
aunque oficialmente NO SON parte de Scrum
(más adelante hablaremos de ellos)
17
21. Historias de Usuarios
(Modelos ágiles – XP, SCRUM)
Una historia de usuario es una narración que describe una
funcionalidad del sistema que tiene valor para un usuario
Se recogen en unas sencillas tarjetas de forma
esquemática y en un lenguaje claro y preciso
Aprobación de nuevos usuarios
¿quién? Yo como administrador del foro
quisiera poder aceptar o rechazar los
nuevos usuarios registrados para así ¿qué?
poder evitar que el foro se llene de
¿por qué? spammers
22. Historias de Usuarios
(Modelos ágiles – XP, SCRUM)
Aprobación de nuevos usuarios
Yo como administrador del foro
quisiera poder aceptar o rechazar los
nuevos usuarios registrados para así
poder evitar que el foro se llene de
spammers
Las historias de usuario sirven de “recordatorio” de la
funcionalidad que es necesario implementar en el
sistema
Antes de implementar una funcionalidad en particular se
produce una discusión con el usuario, se refina y
extiende la información de la historia de usuario
23. Historias de Usuarios
(SCRUM / Requisitos)
Es posible (y útil) también escribir un
breve documento donde se define la
visión general del sistema/producto
Esto ayuda a tener una visión global
del producto que se está
desarrollando
23
25. 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)
25
26. Modelos Ágiles
(SCRUM / Requisitos)
Próximo Sprint, historias
con suficiente detalle y
estimadas
¿Release Plan?
Siguientes Sprints, no
mucho detalle,
estimaciones y plan
tentativos
Los requisitos del product backlog se priorizan y se
asignan a los distintos sprints planificados, es decir, al
sprint backlog de cada sprint
26
28. Modelos Ágiles
(SCRUM / Requisitos)
Sin embargo siempre es posible Una vez comenzado el
añadir nuevas historias de usuario sprint no se añaden
al product backlog y/o cambiar las nuevas historias de
prioridades de las historias existentes usuario al sprint backlog
En general, no hay
cambios, ni en duración ni
en objetivos
El equipo es el dueño
del sprint backlog
28
30. Modelos Ágiles
(SCRUM / Planificación)
(1) sprint planning
¿que tan complejas son las
historias?
¿que historias van para este
sprint?
30
31. Modelos Ágiles
(SCRUM / Requisitos)
Nombre: Crear mensaje foro
Autor: Pedro Pérez
Fecha: 21/04/09
Antes de comenzar el sprint,
Descripción:
Permite crear un nuevo mensaje (hilo) en el foro de discusión.
Actores:
de ser necesario, el product
Usuario / Moderador
Precondiciones:
El usuario debe de estar autenticado en el sistema.
Flujo Normal:
owner refinan las historias 1.- El actor pulsa sobre el botón para crear un nuevo mensaje.
2.- El sistema muestra una caja de texto para introducir el título del mensaje y una zona de
mayor tamaño para introducir el cuerpo del mensaje.
3.- El actor introduce el título del mensaje y el cuerpo del mismo.
de usuario, usando
4.- El sistema comprueba la validez de los datos y los almacena.
5.- El moderador recibe una notificación de que hay un nuevo mensaje.
6.- El moderador acepta y el sistema publica el mensaje si éste fue aceptado por el moderador.
Flujo Alternativo:
cualquier técnica que se 4.A.- El sistema comprueba la validez de los datos, si los datos no son correctos, se avisa al
actor de ello permitiéndole que los corrija.
6.B.- El moderador rechaza el mensaje, de modo que no es publicado sino devuelto al usuario.
considere adecuada Poscondiciones:
El mensaje ha sido almacenado en el sistema y fue publicado.
31
34. Modelos Ágiles
(SCRUM / Proceso)
iteración no se comienza un
sprint hasta que se
sprint 1 termina el anterior
iteración
sprint 2
iteración
sprint 3
etcétera... 34
37. SCRUM
(Roles / Pollos)
Usuarios / Ejecutivos
Son los que usarán y
eventualmente pagarán
el producto
37
38. SCRUM
(Roles / Product Owner)
Product Owner:
Representa la voz del
cliente y aporta la visión
del negocio. Se encarga
de escribir y mantener
las historias de usuario
(Backlog Grooming),
les da prioridad y las
ubica en el product
backlog.
Es el único con la
autoridad para cancelar
el proyecto (debe tener
esta autoridad)
38
39. SCRUM
(Roles / Scrum Master)
Scrum Master
Es el dueño/facilitador
del proceso
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
39
40. SCRUM
(Roles / Scrum Master)
Scrum Master
Organiza reuniones,
hace seguimiento del
trabajo que se está
llevando a cabo, apoya
en la planificación de
los sprints / entregas,
etc
40
41. SCRUM
(Roles / Scrum Master)
Scrum Master
NO ES un
Jefe/Gerente/Líder de
Proyecto en el sentido
tradicional... es más
bien un “Líder Servil”
En general no tiene
poder de “forzar” al
equipo a hacer algo,
pero puede resaltar las
consecuencias de no
seguir bien el proceso
Es un “profesor” de
Scrum...
41
42. SCRUM
(Roles / Equipo)
Equipo
Está compuesto por
los roles tradicionales:
desarrolladores,
probadores, etc.
Estima el esfuerzo de
las historias a
desarrollar
Hace lo que sea
necesario para
desarrolla el producto
y cumplir con las
historias del sprint
backlog
42
44. Modelos Ágiles
(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
Lazo de
feedback Lazo de feedback
diario cada 1-4 semanas
44
45. Modelos Ágiles
(Reunión Diaria)
Reunión Diaria:
REGLAS:
La reunión es diaria y se hace siempre a una
hora predefinida, normalmente por la mañana
Es importante que todos los miembros del
equipo acudan puntuales
45
46. Modelos Ágiles
(Gestión y Seguimiento / Reunión Diaria)
Reunión Diaria:
REGLAS:
La reunión debe durar alrededor de 15
minutos
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
46
47. Modelos Ágiles
(Reunión Diaria)
Reunión Diaria:
REGLAS:
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?
47
48. Modelos Ágiles
(Reunión Diaria)
Reunión Diaria:
REGLAS:
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
La idea es que los problemas se puedan
detectar y resolver a tiempo
48
49. Modelos Ágiles
(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
generalmente, esto es
responsabilidad del Scrum Master 49
50. ¿qué tal si jugamos un rato
con una hoja de cálculo?
50
51. Las siguientes hojas de
excel fueron tomadas de:
http://agilesoftwaredevelopment.com/
Un video explicativo en:
http://www.youtube.com/watch?v=WqgZCiqiYAY
51
52. Modelos Ágiles
(Gestión y Seguimiento / Scrum Burn Down)
Sprint 3. Plug in the Real Weather
days in sprint / effort left
Story ID Story/task 0 1 2 3 4 5 6 7 8 9 10 11 12 13
63 74 68 64 56 49 41 31 29 32 32 32 32 32
10 Fetch one day temperature data from the weather provider system
Make our server connect and authenticate to the provider system 4 16 12 8 3 3 3 3 3 3 3 3 3 3
Read provider's data directory 8 7 7 7 4 0 0 0 0 0 0 0 0 0
Parse the current temperature out of the data 6 6 4 4 4 1 1 1 1 1 1 1 1 1
Push the temperature data to the client 16 16 16 16 16 16 8 2 0 0 0 0 0 0
11 Fetch rain, snow, etc details from the provider
Parse snow/rain data from the provider's data 4 4 4 4 4 4 4 0 0 0 0 0 0 0
Push the snow/rain data to the client 4 4 4 4 4 4 4 4 4 0 0 0 0 0
Redesign client screen a bit 3 3 3 3 3
Refactor the server code 4 4 4 4 4
12 Fetch several days data from the provider
Parse the weather data in day packs 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Push several days data to the client 3 3 3 3 3 3 3 3 3 3 3 3 3 3
13 Auto-refresh feature
Make the client ping server once per 4 hours 6 6 6 6 6 6 6 6 6 6 6 6 6 6
Make the server update the client 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Effort left in sprint
80
74
70 68
63 64
60
56
50 49
effort left
40 41
30 31 32 32 32 32 32
29
20
10
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13
days in sprint
Backlog state taken after day 9 52
based on: http://agilesoftwaredevelopment.com/scrum/simple-sprint-backlog
53. Modelos Ágiles
(Scrum Burn Down)
Weather on Mobile
ID Description Sprint # 1 2 3 4 5 6 Effort left until Release 1
Effort needed for Release 1 as in the beginning of the sprint 90 70 34 0 0 0 100
1 Set up continuous integration system 5 0 0 0 0 0
90 90
2 Create compilable application skeleton 5 0 0 0 0 0
3 Display current temperature in a simplest possible way 13 0 0 0 0 0 80
4 Set up the web server for serving weather data 3 0 0 0 0 0 70 70
5 Implement stubby WeatherML support on the server side 13 0 0 0 0 0 60
Work left
Sprint 1 Make sample data go from server to device 50
6 Graphics support on the client side 20 0 0 0 0 0
40
16 Make the graphics library draw some icon and sample temperature text - 13 0 0 0 0 34
17 Draw the real weather screen - 8 0 0 0 0 30
7 Implement support for several days 8 8 0 0 0 0 20
8 Implement support for rain, snow, etc. icons 2 2 0 0 0 0 10
9 City changing support - 5 0 0 0 0 0 0 0 0
Sprint 2 Minimal working version 1 2 3 4 5 6
10 Fetch one day temperature data from the weather provider system ? 13 13 0 0 0 Sprint #
11 Fetch rain, snow, etc details from the provider 8 8 8 0 0 0
12 Fetch several days data from the provider 5 5 5 0 0 0
13 Auto-refresh feature 8 8 8 0 0 0 Effort left in the backlog
Sprint 3 Plug in the real weather data 180
Release 1 Sellable version 170
160
14 Inject simulated ads from the test server 20 20 20 20 20 20 150
15 Plug real ads in 20 20 20 20 20 20 140
18 Change current city automatically according to the cell info 40 40 40 40 40 40 120
114
Sprint 4 Advertisements support
100
Work left
Release 2 Ad-supported version
Effort in the whole backlog 170 150 114 80 80 80 80 80 80 80
60
40
Backlog state taken after the end of sprint 3 = after release 1
http://agilesoftwaredevelopment.com/scrum/simple-product-backlog 20
0
1 2 3 4 5 6
Sprint #
¿Release Plan? 53
54. Modelos Ágiles
(Kanban / Task Boards)
Límites de
Trabajo en Progreso
Work In Progress
(WIP)
se puede poner en una pared en la oficina
y sirve para hacer el seguimiento
de las tareas del sprint en curso
también hay herramientas en línea:
https://trello.com
54
57. video recomendado
(en ingles)
Scrum Master in Under 10 Minutes
Hamid Shojaee
http://www.youtube.com/watch?v=Q5k7a9YEoUI
57
58. algunos
casos de estudio
http://lookforwardconsulting.com/2012/11/28/14-scrum-case-studies
58
59. Henrik Kniberg
disponible en varios idiomas (español incluido)
descarga gratuita en:
http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
http://www.infoq.com/minibooks/kanban-scrum-minibook 59