Este documento introduce las metodologías ágiles y Scrum. Explica los principios del Manifiesto Ágil, los roles, artefactos y actividades de Scrum como la planeación del sprint, el daily Scrum y la revisión del sprint. El autor es Juan David Pareja Soto, líder de desarrollo de CreApps Soluciones. El objetivo es conocer la filosofía ágil y la práctica de Scrum para el desarrollo de software.
1. Introducción a las
Metodologías ágiles
Juan David Pareja Soto
Líder de Desarrollo CreApps Soluciones
cto@creapps.co - @parejajd
2. @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
7. @parejajd @creappsco
EL MANIFIESTO ÁGIL
Estamos descubriendo formas mejores de desarrollar
software tanto por nuestra propia experiencia como
ayudando 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
8. @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.
9. @parejajd @creappsco
PRINCIPIOS DEL MANIFIESTO ÁGIL
El software funcionando es la medida principal de progreso.
Los procesos Ágiles Promueven el desarrollo sostenible. Los promotores,
desarrolladores y usuarios
debemos 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 y
perfeccionar su comportamiento en consecuencia.
10. @parejajd @creappsco
Fracasaron
29%
Exitosos
14%
No cumplieron
costo,
Calendario y/o
funcionalidad
57%
Modelo en Cascada
Fracasaron Exitosos No cumplieron costo, Calendario y/o funcionalidad
Fracasaron
9%
Exitosos
42%
No cumplieron
costo, Calendario
y/o funcionalidad
49%
Prácticas ágiles
Fracasaron Exitosos No cumplieron costo, Calendario y/o funcionalidad
12. @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
17. @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)
18. @parejajd @creappsco
Artefactos de SCRUM
Product Backlog (Pila del Producto)
Sprint Backlog (Pila del Sprint)
Incremento del Producto potencialmente
entregable
19. @parejajd @creappsco
Artefactos de SCRUM (Pila del Producto)
Caracteristicas
Cambios
Defectos
Mejora Técnica
Adquisición de Conocimiento
20. @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
21. @parejajd @creappsco
Artefactos de SCRUM (Producto
potencialmente entregable)
Una parte del producto o un incremento del mismo
Parte de una decisión de negocio
22. @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
24. @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
25. @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
27. @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
28. @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)
29. @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
30. @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
31. @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
32. @parejajd @creappsco
Taller 3
Continuar en equipos de 5 personas y tomarse 20 minutos
Realizar la estimación para cada historia de usuario
33. @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
34. @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?
35. @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%
36. @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
37. @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%
39. @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?
40. @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)
41. @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
42. @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
43. @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
44. @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!