Clase13 IntroduccionAScrum IMP

30
Ingeniería de Software II Primer Cuatrimestre de 2009 Buenos Aires, 11 de Mayo de 2009 Clase 13: Introducción a los métodos ágiles y Scrum © Cátedra de Ingeniería de Software II FCEN UBA, 2009

description

...

Transcript of Clase13 IntroduccionAScrum IMP

  • Ingeniera de Software II

    Primer Cuatrimestre de 2009

    Buenos Aires, 11 de Mayo de 2009

    Clase 13: Introduccin a los mtodos giles y Scrum

    Ctedra de Ingeniera de Software II FCEN UBA, 2009

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    2

    Qu es un scrum?

    Un scrum es un agrupamiento (formacin fija) en Rugby. 8 integrantes de cada equipo, llamados delanteros, se

    enfrentan agrupados para tratar de obtener la pelota, que es introducida por uno de los equipos en el centro de la

    formacin.

    Pero qu tiene que ver con la Ingeniera de Software?

    Scrum: Qu es?

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    3

    Scrum en el contexto de los mtodos giles

    Los mtodos giles son un subconjunto de los mtodos de desarrollo de software iterativos e incrementales

    Estn basados en el Agile Manifesto:

    Estamos descubriendo mejores formas de desarrollar software, hacindolo y ayudando a otros a hacerlo. A travs de este trabajo hemos llegado a valorar:

    Individuos y sus interacciones sobre las herramientas y los procesos

    Construir software sobre documentacin completa

    La colaboracin con el cliente sobre la negociacin de contratos

    Responder ante el cambio sobre el seguimiento del plan

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    4

    Los tres principios bsicos

    Visibilidad: Los aspectos del proceso que pueden afectar el resultado deben ser visibles. El objetivo es evitar las sorpresas

    Inspeccin: Las variaciones de los procesos deben ser inspeccionados con la suficiente frecuencia tal que las variaciones inaceptables puedan ser detectadas

    Adaptacin: Si el resultado de la inspeccin informa que hay aspectos del proceso que exceden los lmites aceptables, el inspector debe ajustar el proceso o aquello que est siendo procesado. El ajuste debe hacerse los ms rpido posible para minimizar los desvos

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    5

    Ms caractersticas de los mtodos giles

    Empricas (confan en la observacin y la experiencia)

    Livianas

    Adaptativas

    Emergentes (cuidado con esto)

    Rpidas, pero nunca apuradas

    Exponen prdidas (wastefulness)

    Centradas en el cliente

    Empujan las decisiones hacia los niveles ms bajos

    Favorecen la confianza, la honestidad y el coraje

    Favorecen la auto-organizacin

    Time Boxed

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    6

    Scrum vs. Metodologa Tradicional

    Scrum asume:Requerimientos cambiarn durante el proyecto.

    Scrum toma el cambio como una forma de entregar al final del desarrollo algo ms cercano a la verdadera necesidad del Cliente. (Tunnel Vision)

    Sin embargo, Scrum tiene mecanismos de control y estructura.

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    7

    Scrum segn sus autores

    Un framework simple que puede ser entendido e implementado en pocos das

    Una forma de manejar problemas complejos

    Un entorno para soportar la auto-organizacin y la creatividad

    Un esfuerzo colaborativo que involucra a desarrolladores y clientes en un dilogo continuo

    Scrum is not a methodology it is a pathway -- Ken Schwaber

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    8

    Simple

    Caos

    Complejo

    Con certeza Con incertidumbre

    Tecnologa

    Con acuerdo

    Lejos de algn acuerdo

    Req

    uerim

    ien

    tos

    Scrum: Tipos de Proyectos

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    9

    HISTORIA

    Jeff Sutherland

    Scrums en Easel Corp en 1993

    No solo para proyectos triviales

    Ken Schwaber

    Definicin Inicial de Scrum en OOPSLA 96 con Sutherland

    Actualmente utilizado en diversas empresas de todo el mundo, principalmente en Estados Unidos

    Scrum: Historia

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    10

    Esquema Scrum para el Desarrollo

    2 4 semanas

    24 horas

    Product Backlog

    Sprint Backlog

    Incremento del

    Producto

    Daily Scrum

    Meeting

    Estimation Meeting

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    11

    Scrum - Roles

    ScrumMaster Facilitador del equipo. Remueve impedimentos

    Lder, pero no demandante

    Responsable de implementar y administrar el proceso Scrum

    Product Owner Representa los intereses del cliente. Es el responsable de poner los

    requerimientos en trminos claros.

    Es el responsable de maximizar el Retorno de Inversin Prioriza los requerimientos con mayor valor para el negocio.

    Resume el input de los usuarios, stakeholders y otras partes interesadas en una vista nica de los requerimientos del sistema, con prioridades definidas

    Puede cambiar funcionalidades y prioridades cada 30 das

    Acepta o rechaza el trabajo hecho por el equipo

    Team Pilares fundamentales: Comunicacin y Cooperacin

    7 +/- 2 miembros Mximo 11 personas

    Compuesto por Desarrolladores, Funcionales y Testers (skills, no roles)

    Auto-organizado y auto-administrado

    Estima y define los alcances y lmites de cada iteracin

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    12

    Backlog

    Product Backlog: todo lo que se sabe que quiere incluirse en el producto final

    Sprint Backlog: subconjunto del Product Backlog seleccionado para hacerse en un Sprint

    Se descomponen en tareas

    Las tareas se estiman en horas 1-16

    Los miembros se postulan a las tareas

    La estimacin se actualiza da a da.

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    13

    PRIORIDAD DESCRIPCIN

    ESTIMACIN HS.ESTIMADO

    POR

    Scrum: Product Backlog

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    14

    RESPONSABLE

    DESCRIPCIN

    Scrum: SPRINT Backlog

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    15

    Reuniones de Scrum

    Se hacen cuatro tipos de reuniones:Sprint planning

    Sprint Review

    Daily Standup

    Sprint Retrospective

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    16

    Reuniones: Sprint Planning Meeting

    Contexto y CaractersticasAntes del Sprint

    Product Owner define funcionalidades

    El equipo decide qu puede realizar en el sprint

    Participantes:Product Owner

    Product Manager

    Otros Stakeholders

    Team

    Management

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    17

    Sprint Planning

    Meeting

    Product Backlog

    Equipo

    Condicin de Negocio

    Tecnologa

    Estado del Producto

    Sprint Backlog

    Objetivo del Sprint

    Reuniones: Sprint Planning Meeting

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    18

    Estimaciones y Formato del Plan

    Las estimaciones con Scrum se hacen de manera relativa (por ejemplo de 1 a 5), a travs de una especie de piedra, papel y tijera

    Se busca consenso

    El plan generado en la reunin tiene slo dos niveles: stories y tareas

    Se usa un taskboard, donde las tareas estn divididas en Planificadas, En curso, Terminadas

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    19

    Reuniones: Daily Scrum o Daily Standup

    Contexto y CaractersticasDiariamente

    15-minutos

    De pie (recomendacin)

    No se pretende resolver problemas

    Cada integrante del equipo contestaQu hice ayer?

    Qu voy a hacer hoy?

    Qu obstculos hay en mi camino?

    Participantes:Pollitos y cerditos estn invitados

    Solo los cerditos pueden hablar!!!

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    20

    Reuniones: Daily Scrum o Daily Standup

    Por qu diariamente?Recordemos Cmo puede un proyecto retrasarse

    un ao?

    Un da por vez

    Fred Brooks, The Mythical Man-Month.

    Se pueden reemplazar las reuniones de Scrum por reportes va email?

    NO!!!

    Todo el equipo debe ver la big picture cada da.

    Crear la responsabilidad de hacer lo que uno dice que va a hacer.

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    21

    Actualizacin Sprint Burndown Chart

    Reuniones: Daily Scrum o Daily Standup

    Puede ser Story burndown o Task burndown eje Y

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    22

    Reuniones: Sprint Review

    Contexto y CaractersticasCada 30 das aprox.

    2 hs. de preparacin

    No mas de 4 horas

    Demo In-House

    Demo resultado producido

    Participantes:Clientes

    Management

    Product Owner

    Otros involucrados

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    23

    Reuniones: Sprint Retrospective

    Al final de cada sprint

    Qu funcion bien

    Qu puede mejorarse

    Acciones a tomar para mejorar

    Deben hacerse sistemticamente

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    24

    SCRUM - Productos

    Product Backlog Lista priorizada de requerimientos del producto. Pueden ser

    requerimientos funcionales, no funcionales, o issues Puede o no tener una estimacin asociada Tiene un business value asociado

    Sprint Backlog Items Items: Lista de requerimientos extrados del Product backlog

    que se implementarn durante el sprint.

    Sprint Backlog Tasks Tasks: Lista de tareas. Define el trabajo del equipo para el

    Sprint. Las tareas en la lista son las que se desprenden de los requerimientos definidos para ese sprint. Son definidas por el equipo, no por el Scrum Master.

    Impediment List Es una lista de tareas que usa el Scrum Master para hacer

    seguimiento de los impedimentos que deben ser resueltos. Cualquier cosa alrededor de un proyecto de Scrum que

    afecta su productividad y su calidad. Es responsabilidad del ScrumMaster hacer el seguimiento de

    las impedimentos presentes en esta lista

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    25

    Especificacin en Scrum

    Epics Grupos de funcionalidad Casos de Uso conceptuales de muy alto nivel

    Son independientes del product / sprint backlog

    Sirven para dar una visin de la funcionalidad de la aplicacin

    User Stories: Breves descripciones de funcionalidad descriptas desde la

    perspectiva del usuario, que tienen valor para el usuario (business value)

    Interpretan los Epics (Casos de uso bajados a detalle)

    Tienen su respectivo Epic Asocidado

    Tienen la forma: Requerimiento + Casos de aceptacin

    Template: As a User, I Want X, So That I can Y + acceptance Cases

    No deben requerir un esfuerzo mayor a 5 das

    Forman parte del Product / Sprint Backlog

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    26

    Las expectativas de los clientes son documentadas como criterios de aceptacin.

    El criterio de aceptacin debe ser ms especfico que la descripcin de la user story propiamente dicha. Aportan informacin adicional a la story, la cual ayuda a los desarrolladores a saber cuando una user story est cumplida.

    Los criterios de aceptacin deben ser escritos de la forma ms simple posible, para que las asunciones y expectativas de los clientes sean tempranamente comunicadas a los integrantes del equipo.

    El criterio debe ser conceptual y no debe incluir temas relacionados con validaciones, restricciones, etc.

    Estrucutura estndar:

    El

    Puede

    Y Obtener

    Especificacin en Scrum Acceptance Cases

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    27

    Ejemplo de Story:

    User Story Como un: Doctor a cargo de una emergencia

    Quiero: poder ver un mapa con los lugares de derivacin candidatos

    De tal forma que: pueda saber a dnde llevar los afectados por la emergencia rpidamente, minimizando el tiempo de traslado de los accidentados

    Casos de Aceptacin Existe una opcin de ver mapa

    El mapa muestra la posicin actual

    El mapa muestra los centros de derivacin con una indicacin de su tipo:

    Hospitales municipales: rojo

    Clnicas: azul

    El mapa muestra el camino teniendo en cuenta la direccin de las calles

    Etc!

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    28

    Scrums de Scrum

    SCRUM diario de SCRUMs

    Reuniones semanales:Qu han hecho los equipos la semana pasada?

    Qu harn esta semana?

    Cules son sus impedimentos?

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    29

    Dnde dicen los de Scrum que no hay que usar Scrum?

    SCRUM NO es apropiado para:Equipos muy grandes

    Estructuras complejas de equipos

    Equipos distribuidos geogrficamente (depende)

    Aplicaciones crticas (depende)

    Gente con poca experiencia

  • Ctedra de Ingeniera de Software II FCEN UBA, 2009

    30

    Ms informacin

    http://www.mountaingoatsoftware.com/scrum

    http://www.controlchaos.com

    [email protected]

    Agile Software Development with ScrumKen Schwaber and Mike Beedle

    Agile Project Management with Scrum Ken Schwaber and Mike Beedle

    http://ww.agilealliance.com

    http://www.controlchaos.com/certifiiedscrum