metodologías de programación ii unaj - instituto de ingeniería y agronomía - ingeniería en...

41
Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clas e Clase 5 Scrum (Parte 1)

Upload: oscar-prado-maldonado

Post on 24-Jan-2016

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1

3Clas

e

Clase 5

Scrum(Parte 1)

Page 2: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 2

3Clas

e

5.1. Historia

Scrum fue definido por Hirotaka Takeuchi e Ikujiro Nonaka principios de la década de 1980, analizando cómo desarrollaban los nuevos productos las principales empresas de manufactura tecnológica: Fuji-Xerox, Canon, Honda, NEC, Epson, Brother, 3M y Hewlett-Packard.

Page 3: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 3

3Clas

e

5.1. Historia

En su estudio, compararon la nueva forma de trabajo en equipo, con el avance enformación de scrum de losjugadores de rugby, y deallí el nombre dela metodología.

Page 4: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 4

3Clas

e

5.1. Historia

En 1995 Ken Schwaber presentó su trabajo “Scrum Development Process” en la conferencia OOPSLA (Object-Oriented Programming, Systems, Languages & Applications), un marco de reglas para desarrollo de software basado en los principios de scrum, y que él había empleado en el desarrollo de Delphi.

Page 5: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 5

3Clas

e

5.2. Actividades

Scrum plantea las siguientes actividades:

- Planificación de la iteración- Ejecución de la iteración (sprint)- Reunión diaria de sincronización del equipo - Demostración de requisitos completados- Retrospectiva- Replanificación

Page 6: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 6

3Clas

e

5.2. Actividades

Page 7: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 7

3Clas

e

5.2. Actividades

5.2.1. Planificación de la iteración

La planificación de las tareas a realizar en la iteración se divideen dos partes,Normalmentede 4 horascada una.

Page 8: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 8

3Clas

e

5.2. Actividades

5.2.1. Planificación de la iteración

-Primera parte de la reuniónEl cliente presenta alequipo la lista derequisitos del proyecto,priorizados según sunecesidad.

Page 9: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 9

3Clas

e

5.2. Actividades

5.2.1. Planificación de la iteración

-Primera parte de la reuniónEl equipo examina la lista,pregunta al cliente las dudasque le surgen y seleccionalos requisitos más prioritariosque se compromete acompletar en la iteración.

Page 10: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 10

3Clas

e

5.2. Actividades

5.2.1. Planificación de la iteración

-Segunda parte de la reuniónEl equipo planifica la iteración.Ha adquirido un compromiso, es elresponsable de organizar su trabajo y es quienmejor conoce cómo realizarlo.

Page 11: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 11

3Clas

e

5.2. Actividades

5.2.1. Planificación de la iteración

-Segunda parte de la reuniónEl equipo define las tareasnecesarias para podercompletar cada requisito,creando la lista de tareasde la iteración.

Page 12: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 12

3Clas

e

5.2. Actividades

5.2.1. Planificación de la iteración

-Segunda parte de la reuniónRealiza una estimación conjunta del esfuerzo necesario para realizar cada tarea. Cada miembro del equipo se asigna a las tareas que puede realizar.

Page 13: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 13

3Clas

e

5.2. Actividades

5.2.1. Planificación de la iteración

Beneficios: Una estimación conjunta es más fiable, dado que tiene en cuenta los diferentes conocimientos, experiencia y habilidades de los integrantes del equipo.

Page 14: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 14

3Clas

e

5.2. Actividades

5.2.1. Planificación de la iteración

Beneficios:Potenciación del compromiso de cada miembro con el equipo:-Es el equipo quien asume la responsabilidad de completar los requisitos que selecciona.-Es cada persona quien se responsabiliza de realizar las tareas que se le asignan.

Page 15: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 15

3Clas

e

5.2. Actividades

5.2.2. Ejecución de la iteración (sprint)

En Scrum un proyecto seejecuta en iteraciones quetoman de 15 a 30 días.Cada iteración tiene queproporcionar un resultadocompleto, un incrementode producto que se puedaentregar al cliente.

Page 16: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 16

3Clas

e

5.2. Actividades

5.2.2. Ejecución de la iteración (sprint)

Cada día el equipo realiza una reunión de sincronización, donde cada miembro inspecciona el trabajo de los otros para poder hacer las adaptaciones necesarias, así cómo comunicar cuales son los impedimentos con que se encuentra.

Page 17: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 17

3Clas

e

5.2. Actividades

5.2.2. Ejecución de la iteración (sprint)

El facilitador o scrum master se encarga de que el equipo pueda cumplir con su compromiso y de que no se merme su productividad.Elimina los obstáculos que el equipo no puede resolver por sí mismo.Protege al equipo de interrupciones externas que puedan afectar su compromiso o su productividad.

Page 18: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 18

3Clas

e

5.2. Actividades

5.2.2. Ejecución de la iteración (sprint)

RestriccionesNo se pueden cambiar los requisitos de la iteración en curso.Esto facilita que el cliente cumpla con su responsabilidad de conocer qué es lo más prioritario a desarrollar, antes de iniciar la iteración.

Page 19: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 19

3Clas

e

5.2. Actividades

5.2.2. Ejecución de la iteración (sprint)

Terminación anormal Sólo en situaciones muy excepcionales el cliente o el equipo pueden solicitar una terminación anormal de la iteración.

Page 20: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 20

3Clas

e

5.2. Actividades

5.2.2. Ejecución de la iteración (sprint)

Terminación anormalPor ejemplo, si el contexto del proyecto cambia tanto que ya no es posible esperar al final de la iteración para aplicar los ajustes.En esos casos se da por finalizada la iteración y comenzará otra mediante una nueva reunión de planificación de la iteración.

Page 21: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 21

3Clas

e

5.2. Actividades

5.2.3. Reunión diaria de sincronización

El objetivo de esta reunión es facilitar la transferencia de información y la colaboración entre los miembros del equipo para aumentar su productividad.

Page 22: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 22

3Clas

e

5.2. Actividades

5.2.3. Reunión diaria de sincronización

Cada miembro del equipo inspecciona el trabajo que el resto está realizando para poder hacer las adaptaciones necesarias que permitan cumplir con el compromiso conjunto que el equipo adquirió para la iteración en la reunión de planificación.

Page 23: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 23

3Clas

e

5.2. Actividades

5.2.3. Reunión diaria de sincronización

Cada miembro del equipo debe responder en un máximo de 15 minutos:¿Qué hice desde la última sincronización?¿Pude hacer todo lo que tenía planeado?¿Qué problemas tuve?¿Qué voy a hacer a partir de este momento?¿Qué impedimentos tendré para cumplir mis compromisos en esta iteración y en el proyecto?

Page 24: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 24

3Clas

e

5.2. Actividades

5.2.3. Reunión diaria de sincronización

Como apoyo a la reunión, el equipo cuenta con la lista de tareas de la iteración, donde se actualiza el estado y el esfuerzo pendiente para cada tarea, así como con el gráfico de horas pendientes en la iteración.Se actualiza la gráfica burndown con el trabajo realizado.

Page 25: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 25

3Clas

e

5.2. Actividades

5.2.3. Reunión diaria de sincronización

Recomendaciones- Realizar la reunión diaria de sincronización de pie, para que los miembros del equipo no se relajen ni se extiendan en más detalles de los necesarios.- Realizar las reuniones de colaboración entre miembros del equipo justo después de la de sincronización.

Page 26: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 26

3Clas

e

5.2. Actividades

5.2.4. Demostración de requisitos completados

Reunión informal donde el equipo presenta al cliente los requisitos completados en la iteración, en forma de incremento de producto preparado para ser entregado con el mínimo esfuerzo, haciendo un recorrido por ellos lo más real y cercano posible al objetivo que se pretende cubrir.

Page 27: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 27

3Clas

e

5.2. Actividades

5.2.4. Demostración de requisitos completados

En función de los resultados mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente realiza las adaptaciones necesarias, replanificando el proyecto.Se realiza en un tiempo máximo 4 horas.

Page 28: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 28

3Clas

e

5.2. Actividades

5.2.4. Demostración de requisitos completados

BeneficiosEl cliente puede ver de manera objetiva cómo han sido desarrollados los requisitos que proporcionó, ver si se cumplen sus expectativas, entender más qué es lo que necesita y tomar mejores decisiones respecto al proyecto

Page 29: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 29

3Clas

e

5.2. Actividades

5.2.4. Demostración de requisitos completados

BeneficiosEl equipo puede ver si realmente entendió cuáles eran los requisitos que solicitó el cliente y ver en qué puntos hay que mejorar la comunicación entre ambos.

Page 30: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 30

3Clas

e

5.2. Actividades

5.2.4. Demostración de requisitos completados

BeneficiosEl equipo se siente más satisfecho cuando puede ir mostrando los resultados que va obteniendo.No está meses trabajando sin poder exhibir su obra.

Page 31: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 31

3Clas

e

5.2. Actividades

5.2.5. Retrospectiva

El equipo analiza cómo ha sido su manera de trabajar durante la iteración, qué cosas han funcionado bien, cuáles hay que mejorar, qué cosas quiere probar hacer en la siguiente iteración, qué se ha aprendido y cuáles son los problemas que podrían impedirle progresar adecuadamente, con el objetivo de mejorar de manera continua su productividad.

Page 32: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 32

3Clas

e

5.2. Actividades

5.2.5. Retrospectiva

El Facilitador se encargará de ir eliminando los obstáculos identificados que el propio equipo no pueda resolver por sí mismo.Se realiza en un tiempo máximo 3 horas.

Page 33: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 33

3Clas

e

5.2. Actividades

5.2.5. Retrospectiva

BeneficiosIncrementa la productividad y el aprendizaje del equipo de manera sistemática, iteración a iteración, con resultados a corto plazo.

Page 34: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 34

3Clas

e

5.2. Actividades

5.2.6. Replanificación del proyecto

Durante el transcurso de una iteración, el cliente va trabajando en la lista de requisitos priorizada del proyecto, añadiendo requisitos, modificándolos, eliminándolos, repriorizándolos, cambiando el contenido de iteraciones y definiendo un calendario de entregas que se ajuste mejor a sus nuevas necesidades.

Page 35: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 35

3Clas

e

5.2. Actividades

5.2.6. Replanificación del proyecto

Los cambios en la lista de requisitos pueden deberse a:a) Modificaciones que el cliente solicita tras la demostración que el equipo realiza al final de cada iteración sobre los resultados obtenidos, ahora que el cliente entiende mejor el producto o proyecto.

Page 36: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 36

3Clas

e

5.2. Actividades

5.2.6. Replanificación del proyecto

Los cambios en la lista de requisitos pueden deberse a:b) Cambios en el contexto del proyecto, por ejemplo sacar al mercado un producto antes que un competidor o hacer frente a urgencias.c) Nuevos riesgos en el proyecto.

Page 37: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 37

3Clas

e

5.2. Actividades

5.2.6. Replanificación del proyecto

Para realizar esta tarea, el cliente colabora con el equipo y obtiene de él la estimación de costos de desarrollo para completar cada requisito.El equipo ajusta el factor de complejidad, el costo para completar los requisitos y su velocidad de desarrollo en función de la experiencia adquirida hasta ese momento en el proyecto.

Page 38: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 38

3Clas

e

5.2. Actividades

5.2.6. Replanificación del proyecto

El equipo sigue trabajando con los requisitos de la iteración en curso, que eran los más prioritarios al iniciar la iteración.No es posible cambiar los requisitos que se desarrollan durante la iteración.En la reunión de planificación de la iteración el cliente presentará la nueva lista de requisitos para que sea desarrollada.

Page 39: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 39

3Clas

e

5.2. Actividades

5.2.6. Replanificación del proyecto

BeneficiosEl cliente puede tomar decisiones con tiempo respecto al progreso del proyecto y posibles desviaciones.Puede replanificar el proyecto para obtener un nuevo calendario de entregas que cumpla con sus necesidades actuales.

Page 40: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 40

3Clas

e

5.2. Actividades

5.2.6. Replanificación del proyecto

BeneficiosEl cliente puede incorporar nuevos recursos.También puede cancelar el proyecto con los requisitos completados hastael momento plenamenteoperativos, si el beneficiopendiente de obtener es menorque el costo de desarrollo.

Page 41: Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 3 Clase Clase 5 Scrum (Parte 1)

Metodologías de Programación II

UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 41

3Clas

e

Bibliografía

-Cohn, M. (2010) "Succeeding with agile: software development using Scrum".-Pichler, R. (2010) "Agile product management with Scrum: creating products that customers love".-Rubin, K. (2012) "Essential Scrum: A Practical Guide to the Most Popular Agile Process".-Schwaber, K. / Beedle, M. (2002) "Agile Software Development with Scrum".-Schwaber, K. (2004) "Agile Project Management with Scrum".-Sutherland, J. (2004) "Agile Development: Lessons learned from the first Scrum".-Takeuchi, H. y Nonaka, I. (1986) "The New Product Development Game".