Clase 02 Scrum

Preview:

DESCRIPTION

 

Citation preview

1

SCRUM

Universidad de los AndesDemián Gutierrez

Enero 2013

2

Esta presentación contiene en parte materialtomado de la presentación de

Xavier Albalalejo “La alternativa Ágil”

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

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

5

Modelos ágiles(SCRUM / Principios)

Es mejor tener equipos pequeños yauto-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ánmás comprometidos y motivados

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

7

(3)roles

(3)artefactos

(1)proceso

(4)ceremonias

(reuniones)

Modelos ágiles(SCRUM)

8

¿roles?(¿quiénes?)

9

Los demás: Clientes,Ejecutivos, Usuarios, etc...no son más que pollos ;-)

Modelos Ágiles(SCRUM / Roles)

Product Owner(dueño del producto)

Team / Equipo(dueños del desarrollo)

Scrum Master(dueño facilitador del proceso)

cerdos

10

SCRUM(Roles)

ese cuento ha sidoinmortalizado demuchas formas

11

¿proceso?(¿cómo?)

12

Modelos Ágiles(SCRUM / Proceso)

Un Sprint(iteración, ciclo, etc)

? ?

Lazo de feedback

diario

Lazo de feedback cada 1-4 semanas

13

Modelos Ágiles(SCRUM / Proceso)

Varios Sprints

...? ?...? ?

Lazo de feedback

diario

Lazo de feedback

diario

Lazo de feedback

diario

Lazo de feedback semanal

Lazo de feedback semanal

Lazo de feedback semanal

14

15

¿artefactos?(¿qué?)

16

Modelos Ágiles(SCRUM / Artefactos)

tareas de < 16 horas (sólo del sprint)

requisitos “features” de la aplicación

(de todo el producto)

resultado / producto(entregas frecuentes)

definición de listo(Definition of Done)

3 artefactos

17

Modelos Ágiles(SCRUM / Artefactos)

artefactos, herramientasy otros radiadores de información

Scrum Burn DownTablero de Kanban

aunque oficialmente NO SON parte de Scrum(más adelante hablaremos de ellos)

18

¿ceremonias?(¿de qué forma?)

19

Modelos Ágiles(SCRUM / Ceremonias)

(4) retrospectiva¿cómo podemos

mejorar?

(1) sprint planning¿que tan complejas son las

historias?¿que historias van para este

sprint?

(2) daily scrum¿cómo vamos?

(3) sprint review/demo¿qué hemos

logrado?

20

¿requisitos?(¿qué debe hacer el producto?)

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

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

¿quién?¿qué?

¿por qué?

Historias de Usuarios(Modelos ágiles – XP, SCRUM)

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

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

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

24

¿cómo se ordenany gestionan los

requisitos?

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)

26

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

¿Release Plan?

Próximo Sprint, historias con suficiente detalle y

estimadas

Siguientes Sprints, no mucho detalle,

estimaciones y plan tentativos

27

28

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

El equipo es el dueño del sprint backlog

29

¿cómo se estimay planifica?

30

Modelos Ágiles(SCRUM / Planificación)

(1) sprint planning¿que tan complejas son las

historias?¿que historias van para este

sprint?

31

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, el product owner refinan las historias

de usuario, usando cualquier técnica que se

considere adecuada

32

Modelos Ágiles(SCRUM / Planificación)

¿Qué tal si jugamos poker?

33

¿cómo se ve todohasta ahora?

34

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

35

¿roles?

36

SCRUM(Roles)

cerdos(realmentecomprometidos)

pollos(involucrados)

37

SCRUM(Roles / Pollos)

Usuarios / Ejecutivos

Son los que usarán y eventualmente pagarán

el producto

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)

39

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

SCRUM(Roles / Scrum Master)

40

Scrum Master

Organiza reuniones, hace seguimiento del trabajo que se está

llevando a cabo, apoya en la planificación de los sprints / entregas,

etc

SCRUM(Roles / Scrum Master)

41

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...

SCRUM(Roles / Scrum Master)

42

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

SCRUM(Roles / Equipo)

43

¿gestión, controly seguimiento?

44

Reunión Diaria:Es una figura fundamental en SCRUM.

Tiene que reunirse TODO el equipo y debe hacerse según ciertas reglas

Modelos Ágiles(Reunión Diaria)

Lazo de feedback

diarioLazo de feedback cada 1-4 semanas

45

La reunión es diaria y se hace siempre a una hora predefinida, normalmente por la mañana

Reunión Diaria:REGLAS:

Es importante que todos los miembros del equipo acudan puntuales

Modelos Ágiles(Reunión Diaria)

46

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

47

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(Reunión Diaria)

48

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

Reunión Diaria:REGLAS:

Modelos Ágiles(Reunión Diaria)

49

Modelos Ágiles(Scrum Burn Down)

EJE YTrabajo restante, horas, puntos de

función u otra unidad de medida

EJE XDía o fecha del sprint

generalmente, esto esresponsabilidad del Scrum Master

50

¿qué tal si jugamos un ratocon una hoja de cálculo?

51

Las siguientes hojas de excel fueron tomadas de:

http://agilesoftwaredevelopment.com/

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

Un video explicativo en:

52

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

53

Modelos Ágiles(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 6

0

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

¿Release Plan?

54

Modelos Ágiles(Kanban / Task Boards)

se puede poner en una pared en la oficinay sirve para hacer el seguimientode las tareas del sprint en curso

también hay herramientas en línea:

Límites deTrabajo en Progreso

Work In Progress(WIP)

https://trello.com

55

http://www.mountaingoatsoftware.com/scrum/task-boards

Modelos Ágiles(Gestión y Seguimiento / Task Boards)

56http://www.mountaingoatsoftware.com/scrum/task-boards

Modelos Ágiles(Gestión y Seguimiento / Task Boards)

57

video recomendado(en ingles)

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

Hamid Shojaee

Scrum Master in Under 10 Minutes

58

http://lookforwardconsulting.com/2012/11/28/14-scrum-case-studies

algunoscasos de estudio

59

http://www.infoq.com/minibooks/scrum-xp-from-the-trenches

http://www.infoq.com/minibooks/kanban-scrum-minibook

Henrik Kniberg disponible en varios idiomas (español incluido)

descarga gratuita en:

60

Gracias

¡Gracias!