introducción a scrum

45
Introducción a las Metodologías ágiles Juan David Pareja Soto Líder de Desarrollo CreApps Soluciones [email protected] - @parejajd

Upload: juan-david-pareja-soto

Post on 16-Aug-2015

124 views

Category:

Software


0 download

TRANSCRIPT

Introducción a las Metodologías ágiles

Juan David Pareja Soto

Líder de Desarrollo CreApps Soluciones

[email protected] - @parejajd

@parejajd @creappsco

Juan David Pareja Soto

Co-Fundador de EducaJunto http://www.educajunto.co

Co-Fundador de CreApps S.A.S http://www.creapps.co

SEI Authorized PSP/TSP Instructor

SEI Certified PSP/TSP Developer

Scrum Certified Master

Ingeniero de Sistemas y Computación UniQuindio

Visítanos en http://www.educajunto.co

Descárganos de

Nuestros clientes

@parejajd @creappsco

Objetivos

Conocer la Filosofía ágil

Conocer la práctica de SCRUM

Conocer las actividades principales de SCRUM

@parejajd @creappsco

Contenido

El manifiesto ágil¿Qué es SCRUM? Artefactos, Roles y

ActividadesPlaneación del ProyectoEjecución del Proyecto Inspección

@parejajd @creappsco

@parejajd @creappsco

EL MANIFIESTO ÁGILEstamos descubriendo formas mejores de desarrollarsoftware tanto por nuestra propia experiencia comoayudando a terceros. A través de este trabajo hemos

aprendido a valorar:

Individuos e interacciones sobre procesos y herramientas

Software funcionando sobre documentación extensiva

Colaboración con el cliente sobre negociación contractual

Respuesta ante el cambio sobre seguir un plan

Esto es, aunque valoramos los elementos de la derecha,valoramos más los de la izquierda

@parejajd @creappsco

PRINCIPIOS DEL MANIFIESTO ÁGIL

Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.

Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.

Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.

Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.

Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.

El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.

@parejajd @creappsco

PRINCIPIOS DEL MANIFIESTO ÁGILEl software funcionando es la medida principal de progreso. Los procesos Ágiles Promueven el desarrollo sostenible. Los promotores, desarrolladores y usuariosdebemos ser capaces de mantener un ritmo constante de forma indefinida.

La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.

La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.

Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.

A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar yperfeccionar su comportamiento en consecuencia.

@parejajd @creappsco

Fracasaron29%

Exitosos14%

No cumplieron costo, Calendario y/o fun-

cionalidad57%

Modelo en Cascada

Fracasaron

Exitosos

No cumplieron costo, Calendario y/o funcionalidad

Fracasaron9%

Exitosos42%

No cumplieron costo, Calendario y/o fun-

cionalidad49%

Prácticas ágiles

Fracasaron

Exitosos

No cumplieron costo, Calendario y/o funcionalidad

@parejajd @creappsco

¿Qué es SCRUM?

@parejajd @creappsco

¿Qué es SCRUM?

Un marco de trabajo en el que las personas pueden hacer frente a problemas complejos adaptables, mientras que de manera productiva y creativa entregan productos del mayor valor posible SCRUM es: Ligero

Fácil de entender

Difícil de dominar

Ken Schwaber y Jeff Sutherland

@parejajd @creappsco

¿Qué es SCRUM?

Transparencia

Inspección

Adaptación

@parejajd @creappsco

Ciclo de SCRUM

@parejajd @creappsco

Charlemos

¿Beneficios?¿Debilidades?¿Restricciones?

@parejajd @creappsco

Práctica de SCRUM

RolesArtefactosActividades

@parejajd @creappsco

Roles de SCRUM

Product Owner (Gestión Producto y

ROI)

SCRUM Master (Gestión del Proceso)

Equipo de Desarrollo (Se autogestiona y

desarrolla el producto)

@parejajd @creappsco

Artefactos de SCRUM

Product Backlog (Pila del Producto) Sprint Backlog (Pila del Sprint) Incremento del Producto potencialmente

entregable

@parejajd @creappsco

Artefactos de SCRUM (Pila del Producto) Caracteristicas

Cambios Defectos Mejora Técnica Adquisición de Conocimiento

@parejajd @creappsco

Artefactos de SCRUM (Pila del Sprint)

Se revisa el PB y se terminan los elementos a incluir en el Sprint

Se determina la Velocidad del Equipo para determinar el tiempo

Se divide cada entrada del PB en tareas

@parejajd @creappsco

Artefactos de SCRUM (Producto potencialmente entregable)

Una parte del producto o un incremento del mismo

Parte de una decisión de negocio

@parejajd @creappsco

Actividades de SCRUM

Sprint

Planeación del Sprint

Daily SCRUM y Ejecución del Sprint

Revisión del Sprint

Retrospectiva del Sprint

Mantenimiento del Product Backlog

@parejajd @creappsco

Pero antes…

Es necesario definir que hacer…

@parejajd @creappsco

Historias de Usuario

Como <rol de usuario>, quiero <función del sistema> para lograr

<valor del negocio>

Consiste en

Descripción escrita

Conversación

Confirmación

@parejajd @creappsco

Historias de Usuario (Atributos)

Independiente. Puede desarrollarse en cualquier orden

Negociable Valiosa para el cliente Estimable. Suficiente para ordenarla y planificar su

entrega Pequeña y con descripciones breves Testeable. Puedo escribir un test que prueba su

funcionamiento

@parejajd @creappsco

Historias de Usuario (Priorizar)

Siempre por importancia para el negocio

@parejajd @creappsco

Taller 1

Formar equipos de 5 personas

Definir en 10 minutos una aplicación web que el equipo desarrollará

Identificar entre 10 y 15 características de la aplicacion

@parejajd @creappsco

Taller 2

Continuar en equipos de 5 personas y tomarse 20 minutos

Definir uno de los miembros como SCRUM Master y otro como Product Owner

El Equipo documentará en Post-IT las historias de usuario que representen las características de la aplicación

Product Owner aclarará las dudas del producto y validará las historias de usuario

Scrum Master coordinará la actividad

El Product Owner organiza la historias de usuario de acuerdo al valor para el negocio

El Scrum Master y el Product Owner también documentan (esto no se hace en la vida real)

@parejajd @creappsco

Historias de Usuario (Estimación)

Planning Poker Secuencia de Fibonnaci 1,2,3,5,8,13,20,40,100

El PO lee la historia de usuario Se comenta la historia de usuario y el PO responde dudas Cada miembro del Equipo selecciona su carta y la

mantiene en secreto Se muestran las cartas Si todos seleccionaron la misma selecciona este valor de

tamaño

@parejajd @creappsco

Historias de Usuario (Estimación)

Si no, se discute los supuestos preguntados de quienes tienen estimados extremos

Se estima de nuevo y selecciona el valor para la historia Promedio Frecuencia Consenso (Negociación)

Las estimaciones se van haciendo comparando el tamaño nuevo con las anteriores

Se inicia estimando una historia de usuario que sirva de referencia

@parejajd @creappsco

Planeación de la entrega

Se estima Tamaño: Puntos de elementos del PB Velocidad: Puntos de elementos del PB que el equipo

puede entregar por sprint

Se pide al equipo que determine que elementos puede entregar a tiempo en el primer sprint

Se estima la cantidad de Sprints necesarios Se ajusta la velocidad de acuerdo a datos históricos

@parejajd @creappsco

Taller 3

Continuar en equipos de 5 personas y tomarse 20 minutos

Realizar la estimación para cada historia de usuario

@parejajd @creappsco

Actividades de SCRUM (Planeación del Sprint)

EL PO tiene una idea de lo que quiere entregar al final del sprint

El Equipo establece un compromiso realizable basados en sus capacidades, velocidad predicha y las restricciones conocidas

El Equipo determina la capacidad (Puntos Historia de Usuario / Sprint)

Determina el tiempo disponible

Los elementos del PB se convierten en tareas

Se siguen tomando elementos del PB hasta llenar la capacidad del sprint

Las tareas se incluyen en el PB

La actividad durará 8 horas para un sprint de un mes

@parejajd @creappsco

Actividades de SCRUM (Planeación del Sprint)

Se divide la reunión en dos partes

¿Qué será entregada en el incremento resultado del Sprint?

¿Cómo será el trabajo requerido para lograr el resultado?

@parejajd @creappsco

Actividades de SCRUM (Planeación del Sprint)

Determinación de la Capacidad

Planeación 2 Horas por Semana

Revisión 1 Hora por Semana

Retrospectiva 3 Horas por Mes

Refinamiento 10%

@parejajd @creappsco

Taller 4

Para efectos del Ejercicio se definirán Sprint de 30 Minutos.

EL QUE

El PO podrá reorganizar el product Backlog

EL SM facilitará el desarrollo del ejercicio

El Equipo decide tomando una a una de las historias de usuario que tantas puede desarrollar en el Sprint

EL COMO

El Equipo divide las historias de usuario del primer sprint en tareas (Se documentan en Post-it)

Se estima el tiempo de cada tarea

Las actividades se ponen en el tablero de SCRUM en Pendientes

Disponible 20 Minutos

@parejajd @creappsco

Actividades de SCRUM (Planeación del Sprint)

Determinación de la Capacidad

Planeación 2 Horas por Semana

Revisión 1 Hora por Semana

Retrospectiva 3 Horas por Mes

Refinamiento 10%

@parejajd @creappsco

@parejajd @creappsco

Actividades de SCRUM (Daily SCRUM)

Punto de Inspección y adaptación Max 15 minutos al dia

El Equipo completo se reúne

El Equipo dirige y organiza la reunión

El SM solo es un facilitador

El PO solo participa si es necesario

Cada miembro del equipo responde

¿Qué terminó desde la ultima reunión diaria?

¿Qué planea hacer antes de la siguiente reunión diaria?

¿Qué obstáculos o impedimentos no les están permitiendo avanzar?

@parejajd @creappsco

Taller 5 El Equipo construirá el producto dibujando las pantallas

que representan la funcionalidad EL PO aclara dudas y revisa cada elemento terminado

El SM remueve impedimentos

EL PO y SM participan aunque en la vida real no

Cada miembro del equipo va tomando una tarea de pendientes, la pasa a en curso y al terminar y recibir la aprobación del PO lo pasa a terminado

Se realiza una reunión del Daily SCRUM cada diez minutos

¿Qué terminó desde la ultima reunión diaria?

¿Qué planea hacer antes de la siguiente reunión diaria?

¿Qué obstáculos o impedimentos no les están permitiendo avanzar?

Se continua hasta que terminar (o que se termine el tiempo – nunca debe excederse)

@parejajd @creappsco

Actividades de SCRUM (Revisión del Sprint)

Demostración de las funcionalidades desarrolladas (en vivo)

Se inspecciona lo entregado por el equipo y se obtiene retroalimentación

Asisten todos los involucrados

El resultado es un PB revisado que define los elementos posibles para el siguiente Sprint

@parejajd @creappsco

Actividades de SCRUM (Retrospectiva)

El Foco es la mejora continua del proceso

La retrospectiva se restringe a los miembros del equipo SCRUM

Se inspecciona cuan colaborativo y productivo es el equipo y que hacer para mejorar

Al final el equipo debe haber identificado y se debe haber comprometido con acciones de mejora del proceso

Duración de tres horas para un Sprint de un mes

@parejajd @creappsco

Actividades de SCRUM (Retrospectiva)

El Objetivo es mejorar el proceso, relaciones y herramientas

¿Qué funcionó bien y debemos seguir haciendo?

¿Qué no funcionó bien y debemos dejar de hacer?

¿Qué debemos empezar a mejorar?

Crear un Plan de Mejora

@parejajd @creappsco

Conclusiones

SCRUM es muy sencillo de aprender, pero difícil de dominar

Cada proyecto es diferente y requiere adaptarse constantemente

¡Nunca parar de aprender!

¡Gracias!