Upload
pamela-calavetta
View
224
Download
0
Embed Size (px)
DESCRIPTION
...
Citation preview
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
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