View
3
Download
0
Category
Preview:
Citation preview
SCRUM(el modelo de desarrollo que vamos a usar en este curso)
Universidad de los AndesDemián Gutierrez
Marzo 2011
¿Formas de Desarrol lar 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
ArtesanalSin 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)
Jens Østergaard,a fully qualifiedCertified ScrumMaster Trainer,
gives an introduction to Scrum and talks about why is Scrum so hard
http://www.youtube.com/watch?v=q3t8twm3aUk
Talking about ITdepartment
http://www.youtube.com/watch?v=q3t8twm3aUk
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=q3t8twm3aUk
Whatever we did the organization was happyAnd they thought it was
like magicBecause they HAD NO
CLUE have a clue of what we where doing
http://www.youtube.com/watch?v=q3t8twm3aUk
I remember when it cameour first project leader in
1989 and told us:
YOU CAN'T TALK TO THEUSERS ANY MORE
http://www.youtube.com/watch?v=q3t8twm3aUk
Every thing has to go through me...
...I have to have the helicopter view
http://www.youtube.com/watch?v=q3t8twm3aUk
you kind of loose yoursense of responsibility
more, more processesmore, more procedures
http://www.youtube.com/watch?v=q3t8twm3aUk
less and less creativity
andmore, more telling me
how to do ithttp://www.youtube.com/watch?v=q3t8twm3aUk
It was about responsibilityIt was about passion
http://www.youtube.com/watch?v=q3t8twm3aUk
About Software:
what happens when youdo SCRUM?
you are challenging theorganization
the way they use to work the way they are setup to work
http://www.youtube.com/watch?v=q3t8twm3aUk
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 delsoftware es el cambio
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
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
Modelos ágiles(SCRUM / Principios)
Es mejor tener equipos pequeños yauto-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
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
requisitos “features” de la
aplicación
sprints (iteraciones)
(cortos)
requisitos para el sprint (iteración)
resultado(producto)
(entregas frecuentes)
reunióndiaria
tareas de< 16 horas
Modelos Ágiles(SCRUM / Proceso)
Modelos Ágiles(SCRUM / Proceso)
etcétera...
iteraciónsprint 1
iteraciónsprint 2
iteraciónsprint 3
no se comienza un sprint hasta que se termina el anterior
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
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
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
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)
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
Modelos Ágiles(SCRUM / Requisitos)
Nombre: Crear mensaje foro
Autor:
Fecha: 21/04/09
Descripción:
Permite crear un nuevo mensaje (hilo) en el foro de discusión.
Actores:
Usuario / Moderador
El usuario debe de estar autenticado en el sistema.
Flujo Normal:
Flujo Alternativo:
El mensaje ha sido almacenado en el sistema y fue publicado.
Pedro Pérez
Precondiciones:
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.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.
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.
Poscondiciones:
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
Modelos Ágiles(SCRUM / Requisitos)
Una vez comenzado el sprint no se añaden nuevas historias de
usuario al sprint backlogEn 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
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.
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
SCRUM(Roles / Product Owner)
Usuarios / Ejecutivos
Son los que usarán y eventualmente pagarán
el producto
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)
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)
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)
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)
Equipo
Está compuesto por los roles tradicionales:
desarrolladores, probadores, etc.
SCRUM(Roles / Scrum Master)
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
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
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
En la reunión se realizan las siguientes3 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?
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?
Modelos Ágiles(Gestión y Seguimiento / Scrum Burn Down)
EJE YTrabajo restante, horas, puntos de
función u otra unidad de medida
EJE XDía o fecha del sprint
Esto es responsabilidaddel Scrum Master
Las siguientes hojas de excel fueron tomadas de:
http://agilesoftwaredevelopment.com/
http://www.youtube.com/watch?v=WqgZCiqiYAY
Un video explicativo en:
Modelos Ágiles(Gestión y Seguimiento / Scrum Burn Down)
Weather on Mobile
ID Description Sprint # 1 2 3 4 5 6Effort needed for Release 1 as in the beginning of the sprint 90 70 34 0 0 0
1 Set up continuous integration system 5 0 0 0 0 02 Create compilable application skeleton 5 0 0 0 0 03 Display current temperature in a simplest possible way 13 0 0 0 0 04 Set up the web server for serving weather data 3 0 0 0 0 05 Implement stubby WeatherML support on the server side 13 0 0 0 0 0
Sprint 1 Make sample data go from server to device6 Graphics support on the client side 20 0 0 0 0 0
16 Make the graphics library draw some icon and sample temperature text - 13 0 0 0 017 Draw the real weather screen - 8 0 0 0 07 Implement support for several days 8 8 0 0 0 08 Implement support for rain, snow, etc. icons 2 2 0 0 0 09 City changing support - 5 0 0 0 0
Sprint 2 Minimal working version10 Fetch one day temperature data from the weather provider system ? 13 13 0 0 011 Fetch rain, snow, etc details from the provider 8 8 8 0 0 012 Fetch several days data from the provider 5 5 5 0 0 013 Auto-refresh feature 8 8 8 0 0 0
Sprint 3 Plug in the real weather dataRelease 1 Sellable version
14 Inject simulated ads from the test server 20 20 20 20 20 2015 Plug real ads in 20 20 20 20 20 2018 Change current city automatically according to the cell info 40 40 40 40 40 40
Sprint 4 Advertisements supportRelease 2 Ad-supported version
Effort in the whole backlog 170 150 114 80 80 80
Backlog state taken after the end of sprint 3 = after release 1http://agilesoftwaredevelopment.com/scrum/simple-product-backlog
1 2 3 4 5 60
10
20
30
40
50
60
70
80
90
100
90
70
34
0 0 0
Effort left until Release 1
Sprint #
Wo
rk l
eft
1 2 3 4 5 6
0
20
40
60
80
100
120
140
160
180170
150
114
80 80 80
Effort left in the backlog
Sprint #
Wo
rk l
eft
Modelos Ágiles(Gestión y Seguimiento / Scrum Burn Down)
Sprint 3. Plug in the Real Weather
days in sprint / effort leftStory 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 3210 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 3Read provider's data directory 8 7 7 7 4 0 0 0 0 0 0 0 0 0Parse the current temperature out of the data 6 6 4 4 4 1 1 1 1 1 1 1 1 1Push 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 providerParse snow/rain data from the provider's data 4 4 4 4 4 4 4 0 0 0 0 0 0 0Push the snow/rain data to the client 4 4 4 4 4 4 4 4 4 0 0 0 0 0Redesign client screen a bit 3 3 3 3 3Refactor the server code 4 4 4 4 4
12 Fetch several days data from the providerParse the weather data in day packs 10 10 10 10 10 10 10 10 10 10 10 10 10 10Push several days data to the client 3 3 3 3 3 3 3 3 3 3 3 3 3 3
13 Auto-refresh featureMake the client ping server once per 4 hours 6 6 6 6 6 6 6 6 6 6 6 6 6 6Make the server update the client 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Backlog state taken after day 9based on: http://agilesoftwaredevelopment.com/scrum/simple-sprint-backlog
0 1 2 3 4 5 6 7 8 9 10 11 12 13
0
10
20
30
40
50
60
70
80
63
7468
64
56
49
41
31 2932 32 32 32 32
Effort left in sprint
days in sprint
eff
ort
le
ft
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
http://www.mountaingoatsoftware.com/scrum/task-boards
Modelos Ágiles(Gestión y Seguimiento / Task Boards)
http://www.mountaingoatsoftware.com/scrum/task-boards
Modelos Ágiles(Gestión y Seguimiento / Task Boards)
video recomendado(en ingles)
http://www.youtube.com/watch?v=Q5k7a9YEoUI
Hamid Shojaee
Scrum Master in Under 10 Minutes
¿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
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?)
¿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 equipo
Los 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
¿gestión?
SCRUM(¿Cómo vamos a hacer SCRUM en el curso?)
Sprint 3. Plug in the Real Weather
days in sprint / effort leftStory 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 3210 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 3Read provider's data directory 8 7 7 7 4 0 0 0 0 0 0 0 0 0Parse the current temperature out of the data 6 6 4 4 4 1 1 1 1 1 1 1 1 1Push 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 providerParse snow/rain data from the provider's data 4 4 4 4 4 4 4 0 0 0 0 0 0 0Push the snow/rain data to the client 4 4 4 4 4 4 4 4 4 0 0 0 0 0Redesign client screen a bit 3 3 3 3 3Refactor the server code 4 4 4 4 4
12 Fetch several days data from the providerParse the weather data in day packs 10 10 10 10 10 10 10 10 10 10 10 10 10 10Push several days data to the client 3 3 3 3 3 3 3 3 3 3 3 3 3 3
13 Auto-refresh featureMake the client ping server once per 4 hours 6 6 6 6 6 6 6 6 6 6 6 6 6 6Make the server update the client 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Backlog state taken after day 9based on: http://agilesoftwaredevelopment.com/scrum/simple-sprint-backlog
0 1 2 3 4 5 6 7 8 9 10 11 12 13
0
10
20
30
40
50
60
70
80
63
7468
64
56
49
41
31 2932 32 32 32 32
Effort left in sprint
days in sprint
eff
ort
le
ft
si, por medio de las hojas de excel y el scrum burn down, así como por medio
del issue tracker de google code
Recommended