35
Itzcoalt Alvarez M. Itzcoalt Alvarez M. Joiz.Net Joiz.Net Desarrollo Ágil con Desarrollo Ágil con SCRUM SCRUM

Desarrollo Ágil con SCRUM - cic.puj.edu.cocic.puj.edu.co/wiki/lib/exe/fetch.php?media=materias:sg07.p02... · 4 Antecedentes. • Publicación del articulo “The New Product Development

  • Upload
    doannhi

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Itzcoalt Alvarez M.Itzcoalt Alvarez M.Joiz.NetJoiz.Net

Desarrollo Ágil con Desarrollo Ágil con SCRUMSCRUM

2

ObjetivoObjetivo

Acercamiento a SCRUM, Acercamiento a SCRUM, conocer sus ventajas y conocer sus ventajas y

desventajas, así como su desventajas, así como su funcionamiento.funcionamiento.

3

AgendaAgenda

• AntecedentesAntecedentes• Como funciona SCRUMComo funciona SCRUM• Roles y responsabilidadesRoles y responsabilidades• Flujo de Scrum.Flujo de Scrum.• Artefactos.Artefactos.• Esquema de comunicaciónEsquema de comunicación• Implementando Scrum.Implementando Scrum.• Ventajas y desventajas.Ventajas y desventajas.• Preguntas.Preguntas.

4

Antecedentes.Antecedentes.

• Publicación del articulo “The New Product Publicación del articulo “The New Product Development Game “ en Harvard Development Game “ en Harvard Business Review, Jan-Feb 1986 por Business Review, Jan-Feb 1986 por Takeuchi y Nonaka Takeuchi y Nonaka

• Considerado como modelo ágil por la Considerado como modelo ágil por la AgileAgile AllianceAlliance

AntecedentesAntecedentes

• Metodología de desarrollo ágil utilizada en Metodología de desarrollo ágil utilizada en el desarrollo diferentes productos, entre el desarrollo diferentes productos, entre ellos, el desarrollo de software.ellos, el desarrollo de software.

AntecedentesAntecedentes

• Basado en los principios ágiles:Basado en los principios ágiles:– Colaboración estrecha con el clienteColaboración estrecha con el cliente– Predisposición y respuesta al cambioPredisposición y respuesta al cambio– Desarrollo incremental con entregas frecuentes Desarrollo incremental con entregas frecuentes

de funcionalidadde funcionalidad– Comunicación verbal directaComunicación verbal directa– Simplicidad, solo los artefactos necesariosSimplicidad, solo los artefactos necesarios– Motivación, compromiso y responsabilidad del Motivación, compromiso y responsabilidad del

equipo por la auto-gestión, auto-organizaciónequipo por la auto-gestión, auto-organización

¿Como funciona?¿Como funciona?

Antes de iniciar cada iteración, el equipo revisa las tareas pendientes y selecciona la parte que entregará como un incremento de funcionalidad al finalizar la iteración (Sprint)

El equipo debe revisar los requisitos, considerar la tecnología a utilizar, evaluar su conocimiento y en forma colectiva determinar la forma en la que implementara la funcionalidad

RolesRoles

Solo existen tres roles dentro de ScrumSolo existen tres roles dentro de Scrum

• Product OwnerProduct Owner• ScrumMasterScrumMaster• Scrum TeamScrum Team

Roles ( Product Owner)Roles ( Product Owner)

Representa a todos los interesados en el Representa a todos los interesados en el producto final.producto final.

• Marca las prioridades del productoMarca las prioridades del producto• Lleva el control de las estimacionesLleva el control de las estimaciones• Retorno de Inversión (ROI)Retorno de Inversión (ROI)

Roles (Scrum Team)Roles (Scrum Team)

Debe transformar las tareas del Sprint Debe transformar las tareas del Sprint Backlog en un incremento de funcionalidad Backlog en un incremento de funcionalidad en el software.en el software.

• Desarrollar el producto con calidad.Desarrollar el producto con calidad.• Auto-gestionadoAuto-gestionado• Auto-organizado.Auto-organizado.• Multi-funcionalMulti-funcional• No mayor a ocho elementos.No mayor a ocho elementos.

Roles (ScrumMaster)Roles (ScrumMaster)

Responsable del proceso de Scrum.Responsable del proceso de Scrum.• Incorporación de Scrum en la cultura de la Incorporación de Scrum en la cultura de la

organización. organización. • Asegura el cumplimiento de los roles y Asegura el cumplimiento de los roles y

responsabilidades.responsabilidades.• Formación y entrenamiento en el proceso.Formación y entrenamiento en el proceso.

Roles: gallinas y cerdos.Roles: gallinas y cerdos.Una gallina y un cerdo paseaban por la carretera. La gallina dijo al cerdo: “Quieres abrir un restaurante conmigo”. El cerdo consideró la propuesta y respondió: “Sí, me gustaría. ¿Y que venderíamos ?”. La gallina respondió: “Huevos con jamón”.

El cerdo se detuvo, hizo una pausa y contestó: “Pensándolo mejor, creo que no voy a abrir un restaurante contigo”. La gallina los cuestiono por la razón de su negativa, a lo que el cerdo le contesto: “En este negocio, Yo estaría realmente comprometido, mientras que tu estarías sólo implicada”.

Scrum hace una clara diferencia entre estos dos grupos (gallinas y cerdos) para garantizar que quienes tienen la responsabilidad tienen también la autoridad necesaria para poder lograr el éxito del proceso, y que quienes no la tienen no puedan producen interferencias innecesarias

Implicados.Implicados.

• Usuarios finalesUsuarios finales• MarketingMarketing• Áreas comercialesÁreas comerciales• Áreas contablesÁreas contables• Etc.Etc.

Comprometidos.Comprometidos.

• Product OwnerProduct Owner• Scrum TeamScrum Team• Scrum Master.Scrum Master.

Flujo de ScrumFlujo de Scrum

Fuente: Agile Project Management with ScrumKen Schwaber

Visión:ROI – versiones

hitos

Product Backlog Requisitos priorizados

Selección de laProduct Backlo

Sprint BacklogNueva funcionalidad

Flujo de ScrumFlujo de Scrum

SprintSprint

• Tiempo en el cual se desarrolla un Tiempo en el cual se desarrolla un incremento en la funcionalidad incremento en la funcionalidad – Duración máxima: 30 díasDuración máxima: 30 días– Durante el Sprint no puede modificarse el Durante el Sprint no puede modificarse el

contenido del Sprint Backlog.contenido del Sprint Backlog.

SprintSprint

Razones para abortar un Sprint.Razones para abortar un Sprint.– La tecnología seleccionada no funciona.La tecnología seleccionada no funciona.– Han cambiado las circunstancias del negocioHan cambiado las circunstancias del negocio– El Scrum Team ha tenido interferencias.El Scrum Team ha tenido interferencias.

Solo el ScrumMaster puede abortar un Sprint.Solo el ScrumMaster puede abortar un Sprint.

ArtefactosArtefactos

• Scrum define una pequeña cantidad de Scrum define una pequeña cantidad de artefactos para el seguimiento del proyecto artefactos para el seguimiento del proyecto y control de las actividades asociadas al y control de las actividades asociadas al sprint.sprint.– Sprint BacklogSprint Backlog– Product BacklogProduct Backlog– Grafica de progreso.Grafica de progreso.

Product BacklogProduct Backlog

Listado con los requisitos del sistemaListado con los requisitos del sistema• Mantenido y priorizado por el Product Mantenido y priorizado por el Product

OwnerOwner• Documento dinámico que incorpora Documento dinámico que incorpora

constantemente las necesidades del constantemente las necesidades del sistemasistema

• Se mantiene durante todo el ciclo de vida Se mantiene durante todo el ciclo de vida

Product BacklogProduct Backlog

Est

imac

ión inic

ial

Com

ple

jidad

Est

im.

ajust

ada

ID Elemento

1 Nuevo formulario para peticiones de clientes 2 0.2 2,4

2 Configuración de respuestas automáticas 3 0.2 3,6

3 Envío automático de respuestas 1 0.2 1,2

4 Consulta para los clientes de peticiones enviadas 1 0.2 1,2

5 Modificación del cliente de sus peticiones enviadas 2 0.2 2,4

6 Acceso a peticiones sólo para clientes del portal jurídico 5 0.2 6

7 Consulta de peticiones por parte del staff 1 0.2 1,2

8 Inserción de comentarios y reasignación a peticiones (staff) 2 0.2 1,2

9 Consultas por clientes, fechas y temas 3 0,2 3,6

Product Backlog

1

2,4

3,6

1,2

1,2

2,4

6

1,2

1,2

3,6

2

0

0

0

0

0

0

0

1,2

3,6

3

0

0

0

0

0

6

0

0

0

4

0

0

0

0

0

0

0

0

0

Trabajo pendiente

Sprint

10 [Continúa]….

SPRINT 1 15 18 18 0 0 0

Sprint BacklogSprint Backlog

Lista de tareas (realistas) extraídas del Lista de tareas (realistas) extraídas del Product Backlog que serán convertidas en Product Backlog que serán convertidas en un incremento de funcionalidad. un incremento de funcionalidad. – Es recomendable que las tareas tengan una Es recomendable que las tareas tengan una

duración entre 4 y 16 hrs., en caso de tareas duración entre 4 y 16 hrs., en caso de tareas mayores deben intentar descomponerse en mayores deben intentar descomponerse en sub-tareas de ese rango de tiempo.sub-tareas de ese rango de tiempo.

Grafica de progresoGrafica de progreso

ComunicaciónComunicación

Scrum Meeting

Sprint Review

Sprint Retrospective

La forma mas eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la comunicación cara a cara. Manifiesto Ágil

Scrum Planing Meeting

Sprint Planning MeetingSprint Planning Meeting

• Sprint Planning 1Sprint Planning 1– Se priorizan las actividades contenidas en el Product BackLogSe priorizan las actividades contenidas en el Product BackLog– Participan las gallinas y el Product OwnerParticipan las gallinas y el Product Owner– Se define la metaSe define la meta

• Sprint Planning 2Sprint Planning 2– Reunión previa al Sprint en donde el Product Owner muestra las Reunión previa al Sprint en donde el Product Owner muestra las

actividades contenidas en el Product Backlog, ya priorizadas, el Scrum actividades contenidas en el Product Backlog, ya priorizadas, el Scrum Team en conjunto con el Scrum Master determinan las actividades que Team en conjunto con el Scrum Master determinan las actividades que contendrá el siguiente Sprint Backlogcontendrá el siguiente Sprint Backlog

– Si el Scrum Team acepta la viabilidad de la meta definida previamente, Si el Scrum Team acepta la viabilidad de la meta definida previamente, se puede iniciar el Sprint, en caso contrario se comunica para la toma de se puede iniciar el Sprint, en caso contrario se comunica para la toma de dediciones ( incrementar recursos, reducir alcance)dediciones ( incrementar recursos, reducir alcance)

– El Scrum Team define la plataforma y el diseño a utilizarEl Scrum Team define la plataforma y el diseño a utilizar– El Scrum Team puede realizar pregunta a fin de determinar la El Scrum Team puede realizar pregunta a fin de determinar la

complejidad de las tareas presentadas.complejidad de las tareas presentadas.

Scrum MeetingScrum Meeting

• Reunión diaria, informal, interactiva, ágil de no mas de 30 minutos.Reunión diaria, informal, interactiva, ágil de no mas de 30 minutos.• Primera actividad del díaPrimera actividad del día• Todos los miembros del equipo acuden,Todos los miembros del equipo acuden,• Las gallinas no pueden intervenir ni distraer, de ser necesario, el Las gallinas no pueden intervenir ni distraer, de ser necesario, el

Scrum Master puede limitar el numero de gallinas asistentesScrum Master puede limitar el numero de gallinas asistentes• Moderada por el Scrum Master quien pregunta a todos los miembros Moderada por el Scrum Master quien pregunta a todos los miembros

del equipodel equipo– ¿Qué has hecho ayer?¿Qué has hecho ayer?– ¿Qué vas hacer hoy?¿Qué vas hacer hoy?– ¿Qué ayuda necesitas?¿Qué ayuda necesitas?En caso de requerir ayuda, los miembros del equipo involucrados se reúnen En caso de requerir ayuda, los miembros del equipo involucrados se reúnen

al terminar la revisión a fin de acordar las acciones necesarias al terminar la revisión a fin de acordar las acciones necesarias • Solo habla la persona que informa, el resto escucha, no hay lugar Solo habla la persona que informa, el resto escucha, no hay lugar

para otras conversaciones.para otras conversaciones.

Sprint ReviewSprint Review

Reunión del equipo, Scrum Master, Product Owner con todas las personas implicadas en el proyecto (gallinas).– Duración máxima: 4 horas.– Objetivo: presentar al propietario del producto y a las gallinas las

nuevas funcionalidades implementadas.– Las funcionalidades no implementadas o terminadas no se

presentan.– En la reunión, los miembros del equipo muestran las nuevas

funcionalidades.– Al final de la reunión se interroga individualmente a todos los

asistentes para recabar impresiones, sugerencias de cambio y mejora, y su relevancia.

– El propietario del producto trata con los asistentes y con el equipo las posibles modificaciones en el Product Backlog.

Sprint RetrospectiveSprint Retrospective

• Reunión entre el Scrum Team y el Scrum Master, opcionalmente el Product Owner.– Todos los miembros del equipo responden a dos preguntas:

• ¿Qué cosas funcionaron bien en el último sprint?• ¿Qué cosas se podrían mejorar?

– El Scrum Master anota todas las respuestas– El Scrum Team prioriza las mejoras posibles al proceso– El Scrum Master no proporciona respuestas, ayuda al equipo a

encontrar la mejor forma de trabajar con Scrum.– Las acciones de mejora localizadas que se puedan implementar

en el próximo Sprint deben introducirse en el Product Backlog como elementos no funcionales.

Implementando ScrumImplementando Scrum

• Scrum no es para todos los proyectos.Scrum no es para todos los proyectos.• Generar plan de implementaciónGenerar plan de implementación

– Capacitación de los involucrados. (reglas, Capacitación de los involucrados. (reglas, procesos)procesos)

– Definición de ScrumMasterDefinición de ScrumMaster– Proyecto PilotoProyecto Piloto

• Equipos no dispersos.Equipos no dispersos.

VentajasVentajas

• Entrega de un producto funcional al Entrega de un producto funcional al finalizar cada Sprint.finalizar cada Sprint.

• Posibilidad de ajustar la funcionalidad en Posibilidad de ajustar la funcionalidad en base a la necesidad de negocio del clientebase a la necesidad de negocio del cliente

• Visualización del proyecto día a díaVisualización del proyecto día a día• Alcance acotado y viable.Alcance acotado y viable.• Equipos integrados y comprometidos con el Equipos integrados y comprometidos con el

proyecto, toda vez que ellos definieron el proyecto, toda vez que ellos definieron el alcance y se auto-administran.alcance y se auto-administran.

DesventajasDesventajas

• No genera toda la evidencia o No genera toda la evidencia o documentación de otras metodologíasdocumentación de otras metodologías

• No es apto para todos los proyectos.No es apto para todos los proyectos.• Tal vez sea necesario complementarlo con Tal vez sea necesario complementarlo con

otros procesos (XP)otros procesos (XP)

HerramientasHerramientas

Existen en el mercado implementaciones de Existen en el mercado implementaciones de herramientas que permiten llevar el control de un herramientas que permiten llevar el control de un desarrollo con Scrum.desarrollo con Scrum.

• Microsoft Visual Studio Team SystemMicrosoft Visual Studio Team System– httphttp://://scrumforteamsystem.comscrumforteamsystem.com

• Scrumz Scrumz – http://http://www.codeplex.comwww.codeplex.com//scrumzscrumz

• ScrumWorksScrumWorks– http://www.danube.com/scrumworks/basic/featureshttp://www.danube.com/scrumworks/basic/features

Pero…. Y el Testing..Pero…. Y el Testing..

• La implementación de Planes de pruebas dentro La implementación de Planes de pruebas dentro y fuera del Sprint es en todo caso opcional, en y fuera del Sprint es en todo caso opcional, en todo caso aun cuando el Scrum Team este todo caso aun cuando el Scrum Team este comprometido con la calidad, siempre es comprometido con la calidad, siempre es necesario llevar a cabo pruebas adicionales.necesario llevar a cabo pruebas adicionales.

• Algunas actividades del siguiente Sprint pueden Algunas actividades del siguiente Sprint pueden ser la resolución de errores previos.ser la resolución de errores previos.

• La recolección de métricas en cuando a defectos La recolección de métricas en cuando a defectos puede brindar información importante y debe ser puede brindar información importante y debe ser tomada en cuenta en el Sprint Retrospective.tomada en cuenta en el Sprint Retrospective.

Mas información.Mas información.

• Manifiesto AgilManifiesto Agil– http://www.agilemanifesto.org/http://www.agilemanifesto.org/

• Control ChaosControl Chaos– http://www.controlchaos.com/http://www.controlchaos.com/

• Agile Project Management with ScrumAgile Project Management with Scrum• Agile Software Development with ScrumAgile Software Development with Scrum• Joiz.NetJoiz.Net

– http://www.joiz.net/http://www.joiz.net/• InfoQInfoQ

– http://www.infoq.com/http://www.infoq.com/

Itzcoalt Alvarez M. Itzcoalt Alvarez M. [email protected] [email protected]

PreguntasPreguntas