Introducción básica a Scrum, la metodología de desarrollo de software ágil. Usamos esta presentación como primer paso para inducir a nuevos miembros del equipo a nuestra manera de trabajar.
2. Manifiesto por el Desarrollo Ágil de Software
Estamos descubriendo formas mejores de desarrollar software
tanto haciéndolo nosotros mismos como ayudando a otros. 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 de contratos
Responder ante el cambio sobre seguir un plan
Esto es, aunque valoramos los elementos de la derecha,
valoramos más los de la izquierda.
http://agilemanifesto.org
3. Metodologías de Desarrollo Ágil
Universo Ágil
Scrum
Crystal
Orange
eXtreme
Programming
Dynamic Systems
Development Method
7. Dueño del Producto
(Product Owner - PO)
•
•
•
•
Tiene la visión de lo que el producto debe ser
Define la funcionalidad del producto
Prepara la lista del backlog del producto
Asigna prioridad a la funcionalidad para decidir
en qué Sprint se construye
• Es el único que puede cambiar la funcionalidad
y/o su prioridad
• Aprueba o rechaza el trabajo completado por el
equipo
8. Equipo de Desarrollo
• Los miembros del equipo se auto-organizan para
completar el trabajo, no dependen de un líder de
proyecto
• El equipo es multidisciplinario, tienen todas las
habilidades necesarias para completar el proyecto
• Trabajan juntos, en un espacio abierto
• Estiman y predicen cuáles elementos del backlog
pueden completar dentro de un Sprint, y cuáles
no
9. Interacción entre el PO y el Equipo
• El equipo dedica 5-10% del tiempo del Sprint para
reunirse con el PO a planear y estimar
• El PO participa en la reunión de Scrum diaria, pero
no debe intervenir con los planes del equipo o del
Sprint
• El PO está disponible para contestar preguntas del
equipo diariamente, se asegura de que el equipo
comprende cada una de las historias de usuario
• El PO inspecciona el trabajo y evalúa la calidad de
los productos entregados por el equipo
10. ScrumMaster
• Responsable de que el equipo sea y se mantenga
funcional y productivo
• Facilita la colaboración entre todos los roles y ayuda
a eliminar barreras que impidan o dificulten el
progreso del equipo
• Escuda al equipo de interferencias externas
• Es responsable de que el equipo y los participantes
externos se adhieran al proceso Scrum
• Captura y da seguimiento a la lista de barreras e
impedimentos
13. Backlog del Producto
• Es la lista de funcionalidad (expresada como Historias de
Usuario) del producto completo
• Conforme avanza el proyecto se le añaden tareas del
proyecto y defectos (bugs) del software
• Está ordenado por orden de prioridad, donde los elementos
de mayor prioridad están al principio de la lista
• Cada elemento tiene una estimación
• Los elementos de mayor prioridad son los que se analizan
en detalle primero (por lo que la estimación de los
elementos de más prioridad suele ser más acertada que la
de los otros elementos)
• Cualquier miembro del equipo puede agregar elementos al
backlog del producto (pero solo el PO puede prioritizarlos)
• Se mantiene visible a todo el equipo
• La primera versión se desarrolla al inicio del proyecto
14. Historia de Usuario
Qué es una historia de usuario?
Una historia de usuario describe una pieza de
funcionalidad que es de valor a un usuario o comprador
del producto
Una historia de usuario tiene tres componentes:
• Narrativa: define quién es el usuario, qué funcionalidad es la que
necesita y porqué
– Como un <tipo de usuario>, quiero <un objetivo> para que <una razón>
• Conversaciones: que el equipo tiene con el PO para entender los
detalles sobre la historia
• Criterios de Aceptación: tests que ayudan a confirmar que la
historia de usuario está completa
15. Backlog del Sprint
• Compuesto de las tareas necesarias para convertir
en software funcional aquellos elementos del
Backlog del Producto que se seleccionaron para un
Sprint
• Se hace una estimación para determinar cuantas y
cuáles elementos del Backlog del Producto pueden
incluirse en el Sprint
• Los miembros del equipo seleccionan las tareas que
van a completar, no son asignadas a ellos
• Diariamente se actualiza la cantidad de trabajo
restante estimada
16. Burndown Chart
Unidades de Trabajo (horas, pntos, etc.)
Ayuda a ver “cómo vamos” en un Sprint (y en el proyecto)
Burndown Chart
(Gráfica de Progreso)
200
180
Velocidad Planeada
Trabajo Restante
160
140
120
100
80
60
40
20
0
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20
Días
17. 200
180
Burndown Chart
(Gráfica de Progreso)
Velocidad
Planeada
Trabajo
Restante
160
140
120
100
80
60
40
20
0
Unidades de Trabajo (horas, pntos, etc.)
Unidades de Trabajo (horas, pntos, etc.)
Qué significa?
Vamos más lentos de lo esperado
Sabemos por qué?
Podemos corregir la tendencia?
O quizás debamos sacar cosas del
backlog del Sprint
180
(Gráfica de Progreso)
Velocidad
Planeada
Trabajo
Restante
160
140
120
100
80
60
40
20
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Días
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Días
•
•
•
•
200
Burndown Chart
•
•
•
•
Vamos más rápido de lo esperado
Sabemos por qué?
Va a seguir así la tendencia?
Podemos agregar cosas al
backlog del Sprint?
19. Planeación del Sprint
La reunión de Planeación del Sprint incluye al Dueño del
Producto (PO), al ScrumMaster, al equipo de desarrollo
completo y a representantes de la gerencia o el cliente que
estén interesados.
• Definir el objetivo del Sprint
• Seleccionar los elementos del backlog del producto a incluir
en el Sprint
• Identificar las tareas necesarias para completar los elementos
del backlog seleccionados
• Estimar las tareas
• Re-priorizar, re-estimar, dividir elementos del backlog en subelementos
• Estimar la Velocidad del equipo
20. Reunión de Scrum Diaria
• Reunión diaria de 15 minutos para compartir status
individual al resto del equipo – no es un reporte de
progreso al ScrumMaster
• Cada miembro del equipo da respuesta a 3
preguntas:
• Qué hice desde la última reunión de Scrum diaria?
• Qué voy a hacer y terminar antes de la próxima
reunión?
• Qué obstáculos o barreras me obstruyen el
camino?
21. Revisión del Sprint
• Esta reunión se tiene al final del Sprint
• El equipo hace una demostración al PO de la
funcionalidad que se completó durante el Sprint
• El PO aplica los criterios de aceptación a cada elemento
del backlog para determinar si lo acepta o rechaza
• Los elementos del backlog del Sprint que son rechazados
se regresan al backlog del Producto
• Otros interesados en el proyecto pueden asistir a esta
reunión
• Se evalúa si se cumplió con el objetivo del Sprint (aunque
algunos elementos del backlog del Sprint no se hayan
terminado)
22. Retrospectiva del Sprint
• Reunión al final de cada Sprint para encontrar
oportunidades de mejora a procesos
• Se analiza:
• Qué cosas salieron bien
• Qué cosas salieron mal
• Qué cosas podríamos mejorar
• El equipo propone soluciones para los problemas
más críticos
23. Quieres saber más?
• Tenemos más materiales sobre el desarrollo
de software ágil en:
www.scio.com.mx