scrum - · pdf file1.- el actor pulsa sobre ... 6.b.- el moderador rechaza el mensaje, de...

Post on 06-Feb-2018

216 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SCRUM(el modelo de desarrollo que vamos a usar en este curso)

Universidad de los AndesDemián Gutierrez

Marzo 2011

?formas dedesarrollarsoftware

¿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)

sobre losmétodos

“pesados”

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)

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

¿proceso?

Modelos Ágiles(SCRUM / Proceso)

¡SCRUM!

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

¿requisitos?

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

¿roles?

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)

ese cuento ha sidoinmortalizado demuchas formas

SCRUM(Roles)

cerdos(realmentecomprometidos)

pollos(involucrados)

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)

¿gestión, controly seguimiento?

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)

RESUMEN

(Lo siento, es que el dibujo me gustó ;-)

video recomendado(en ingles)

http://www.youtube.com/watch?v=Q5k7a9YEoUI

Hamid Shojaee

Scrum Master in Under 10 Minutes

¿SCRUM ylos cursos

de IS / BD?

¿quiénes desempeñaran que roles a lo largo del curso?

SCRUM(¿Cómo vamos a hacer SCRUM en el curso?)

¿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

Gracias

¡Gracias!

top related