Professional Documents
Culture Documents
Rafael Sabbagh
Certified Scrum Trainer (CST), Scrum Alliance ScrumMaster, Scrum Coach & Scrum Trainer
Conferencista en eventos y congresos:
@rsabbagh
Organizador:
Participante:
Un poco de historia...
Un poco de historia...
Dcada del 50: la gestin de proyectos es reconocida como materia, nacida de la administracin Henri Fayol: Su trabajo es la base de la gestin tradicional de proyectos El gerente posee 5 funciones bsicas:
Planificar Planear
Organizar Comandar
Controlar
Coordinar
Hasta entonces, la gestin de proyectos trataba de grandes proyectos de ingeniera y construccin civil.
Un poco de historia...
Dcada del 60: el desarrollo de software empieza a ganar complejidad Proyectos de software: el uso de metodologas tradicionales empieza a ser aplicado a proyectos de ingeniera y construccin civil Empiezan a aparecer los Problemas:
El desarrollo de software exige cambios frecuentes el cliente no sabe exactamente lo que quiere hasta ver partes del software terminadas
Un poco de historia...
1970: Winston Royce publica un artculo, donde critica el abordaje tradicional en el desarrollo de softwares
Waterfall
Un poco de historia
BDUF Big Design Up Front
Un poco de historia
Software es diferente! 1990: DeGrace & Stahl presentan factores que vuelven cuestionable el uso de BDUF en proyectos de software: Los requisitos no son totalmente comprendidos al inicio del proyecto;
Los usuarios slo saben exactamente lo que quieren despus de ver una versin inicial del producto;
Los requisitos cambian durante el proceso de desarrollo; Nuevas herramientas y tecnologas vuelven imprevisible la estrategia de desarrollo
Agilidad
Agilidad
2001: representantes de procesos de desarrollo de software se reunieron para discutir sobre lo que posean en comn sus procesos
2. Aceptamos que los requisitos cambien, incluso en etapas tardas del desarrollo. Los procesos giles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
3. Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo ms corto posible.
4. Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.
5. Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecucin del trabajo.
6. El mtodo ms eficiente y efectivo de comunicar informacin al equipo de desarrollo y entre sus miembros es la conversacin cara a cara.
Por qu Scrum?
Por qu Scrum?
Entrega ROI en cada release (tajada a tajada), no solamente al final Acepta cambios: el input y el feedback del cliente reducen riesgos, permitiendo el desarrollo del producto indicado Evita desperdicio!
Slo produce lo que el cliente realmente usar Planifica solo lo suficiente y necesario, con el nivel de detalle adecuado Slo genera los artefactos necesarios y suficientes (por ejemplo: documentacin)
Por qu Scrum?
Transparencia
El Cliente acompaa y recibe los resultados desde el inicio Indicadores de progreso tempranos reducen riesgos
Sprint burndown. cuadro de tareas, Release burndown Daily Scrum
Aumenta la productividad
Interaccin y comunicacin entre los miembros del Equipo de Desarrollo. Trabajo en ritmo sostenible Propiedad: El equipo de desarrollo es responsable y responde por los resultados de su trabajo
Inspeccin y adaptacin para la mejora continua del trabajo del Equipo de Desarrollo
Siempre Frecuentemente 7%
45% 16%
19%
Qu es Scrum?
Scrum
...es un framework gil y simple para el desarrollo de productos complejos en ambientes complejos; ...no es un proceso o tcnica: dentro de Scrum se pueden emplear varios procesos y tcnicas;
Scrum...
cliente,
...vuelve los problemas de las prcticas de desarrollo transparentes, para que se puedan mejorar;
...utiliza inspeccin y adaptacin para la mejora continua del producto y de los procesos de desarrollo;
Scrum...
...utiliza equipos auto-organizados, que definen las mejores formas de desarrollar las funcionalidades de mayor valor
...focaliza el orden del trabajo basado en el mayor valor de negocio para el cliente;
Scrum: Orgenes
Ken Schwaber, inicio de los aos 90: desarrollo en su empresa de lo que se volvera Scrum Jeff Suttherland, 1993: desarrollo del Scrum en Easel Corporation Ken Schwaber : formalizacin de Scrum en la OOPSLA95 Aos siguientes: Schwaber y Sutherland colaboran para unificar sus trabajos
Publicacin del libro Agile Software Development with Scrum, por Ken Schwaber y Mike Beedle
Scrum: Orgenes
The New New Product Development Game, de Takeuchi y Nonaka (1986)
Equipos de desarrollo de nuevos productos de empresas americanas y japonesas
Inestabilidad embebida Equipos auto-organizados Fases de desarrollo superpuestas Aprendizaje mltiple Control sutil Transferencia organizacional de aprendizaje
Scrum: Orgenes
The New New Product Development Game, de Takeuchi y Nonaka (1986)
El nombre
Scrum: Orgenes
Sistema Toyota de Produccin y Produccin sin Excesos
Produccin orientada por el cliente Produccin del valor en flujo estable y continuo, sin paradas, lotes, filas o departamentos Calidad embebida en el proceso: jidoka Mejora continua: kaizen Combate al desperdicio:
muda: etapas sin valor muri: sobrecarga en las personas y equipos mura: desbalances en los ritmos de produccin
Procesos empricos:
Complejos e imprevisibles Diferentes entradas, diferentes salidas
#2 Inspeccin: investigar
#3 Adaptacin: mejorar
Introduccin a Scrum
Equipo de Scrum
Product Owner
Garantiza y maximiza el ROI del cliente a partir del trabajo del Equipo
Equipo de Desarrollo
Genera valor para el cliente construyendo incrementos del producto con alta calidad
ScrumMaster
Garantiza que los valores prcticas y reglas de Scrum estn siendo comprendidos y seguidos
El Ciclo de Scrum
Qu har?
Cules fueron los impedimentos?
A diario, el Equipo de Desarrollo realiza la DAILY SCRUM, una reunin de 15 minutos para promover visibilidad y comunicacin entre los miembros del Equipo
Al final del ciclo de desarrollo, el Equipo de Desarrollo habr producido un incremento en el producto listo, que significa valor para el cliente
ScrumMaster: Atribuciones Garantiza que sean seguidos los valores de Scrum, prcticas y reglas
Resuelve los impedimentos que impiden el trabajo del Equipo de Desarrollo. Facilita las reuniones del Scrum Facilita el trabajo del Equipo de Desarrollo y su relacin con el P. O. Ensea Scrum al Equipo de Desarrollo y cmo autoorganizarse Garantiza que el Equipo de Desarrollo posee todo lo necesario para mejorar su trabajo (calidad y productividad) y lo incentiva a realizarlo
ScrumMaster: Atribuciones Garantiza que sean seguidos los valores de Scrum, prcticas y reglas
Alinea las necesidades del Equipo de Desarrollo y las de la organizacin Puede ayudar a seleccionar el P. O. Garantiza que el P. O. posee todo lo que precisa para saber realizar su trabajo
ScrumMaster: Caractersticas
Competente en soft skills: facilitador, negociador, comunicador, gestin de conflictos etc. Valiente para realizar los cambios necesarios y resolver los impedimentos Preferentemente est presente durante todo el trabajo del Equipo de Desarrollo. Exento/imparcial lo necesario para no interferir en las decisiones del Equipo de Desarrollo sobre el trabajo de desarrollo y para no interferir en las decisiones del Product Owner sobre el producto
ScrumMaster
Product Owner: Atribuciones Es responsable por garantizar y maximizar el ROI del cliente a partir del trabajo del Equipo de Desarrollo.
Administra el Product Backlog: garantiza la visibilidad, incluye, retira, modifica y ordena los tems Se relaciona con los stakeholders del proyecto
identifica los stakeholders y su nivel de apoyo se comunica con ellos para entender sus necesidades balancea las diferentes necesidades de los stakeholders influencia a los stakeholders
Product Owner: Atribuciones Es responsable por garantizar y maximizar el ROI del cliente a partir del trabajo del Equipo de Desarrollo.
Participa activamente de los Sprints
Est disponible para el Equipo de Desarrollo Sprint Planning / Sprint Review (y Release Planning)
Acepta o rechaza en la Sprint Review el trabajo realizado por el Equipo de Desarrollo. Garantiza que hay presupuesto suficiente para el proyecto durante todo su desarrollo
Representativo con suficiente poder y conocimiento necesario para tomar decisiones rpidas y correctas sobre el producto
Equipo de Desarrollo: Atribuciones Genera valor para el cliente construyendo incrementos del producto con alta calidad
Trabaja sobre el Product Backlog, en direccin a la visin del producto Entrega valor frecuentemente al cliente
Se comunica frecuentemente con el P. O. dudas y decisiones sobre el producto Informa los impedimentos al ScrumMaster en el momento en que son detectados
Suficientemente pequeo (7 2) para garantizar la comunicacin Motivado, con la confianza y apoyo necesarios Buscando la excelencia tcnica
Comprometido a alcanzar las metas del Sprint/Release los mejores Equipos de Desarrollo son 100% dedicados al proyecto (sin multitasking)
User Stories
Quin?
Qu?
Como COMPRADOR, puedo VER LIBROS para ELEGIR LO QUE VOY A COMPRAR
Por qu?
User Stories
Las User Stories son una buena forma de representar los tems del Product Backlog Por qu? User Stories guan el Equipo de Desarrollo con enunciados concisos y directo al punto ayudan a mantener los tems del Product Backlog alineados con la Visin del Producto llevan el P. P./clientes a una profunda reflexin al escribirlas ....invitan al Equipo de Desarrollo y al P. P./clientes a conversar sobre el producto
CONVERSATION (conversacin)
Conversaciones sobre la story, a travs de las cuales, de hecho, el requisito es comunicado por el cliente a los programadores
CONFIRMATION (confirmacin)
Pruebas que documentan los detalles de la story y pueden ser usadas para determinar cundo est terminada
Independiente de las otras stories Negociable, detalles sern negociados Valiosa para el cliente Estimable por los desarrolladores Pequea en esfuerzo de implementacin Comprobable para permitir su confirmacin
PICA
STORY
STORY
STORY
STORY
STORY
TEMA
STORY STORY STORY STORY STORY
STORY
STORY
STORY
Criterios de Aceptacin
El Product Owner escribe los criterios de aceptacin para cada tem deseado antes del Sprint Planning Durante el Sprint Planning, los criterios de aceptacin son discutidos y negociados con el Equipo de Desarrollo. Enunciados cortos y fciles de entender Definen los limites para un tem
Son especficos para cada tem, mientras que el DoD funciona para todos los tems de funcionalidades del Product Backlog
Criterios de Aceptacin
Ayudan al P. P. a responder lo que sea necesario para que esa funcionalidad propicie valor Ayudan al Equipo de Desarrollo a ganar una comprensin compartida sobre la Story/funcionalidad Ayudan a los programadores/testers a generar las pruebas Ayudan a los programadores a saber cuando deben parar de agregar ms funcionalidades a una story
Criterios de Aceptacin
Como comprador de libros, quiero poder usar mi tarjeta de crdito para pagar los libros elegidos, teniendo practicidad y seguridad en el pago
Los campos obligatorios del formulario de pago deben estar claramente indicados
Slo debe aceptar las tarjetas de crdito aceptadas por nuestro sistema
Slo debe aceptar tarjetas de crdito con fecha de validez vigente
Criterios de Aceptacin
Sirven para verificar que las funcionalidades (user stories) implementadas funcionan como el cliente solicit Son el tercer C de las user stories (confirmacin) Son definidos a partir de ejemplos suministrados por el cliente Esos ejemplos son aplicados a los Criterios de Aceptacin del tem al formular las Pruebas de Aceptacin
Pruebas de Aceptacin
Como comprador de libros, quiero poder usar mi tarjeta de crdito para pagar los libros elegidos, teniendo practicidad y seguridad en el pago
Verificar si los campos nombre, direccin, nmero de la tarjeta, marca y fecha de vencimiento estn claramente indicados Probar con una tarjeta Visa (nuestro sistema debe aceptar Visa)
Luz verde si la acepta Luz roja si no la acepta !se debe corregir!
Probar con una tarjeta Amex (nuestro sistema no debe aceptar tarjetas Amex)
Luz verde si no la acepta Luz roja si la acepta !se debe corregir!
Product Backlog
Qu es el Product Backlog?
Lista de requisitos del producto tems con deseos de negocios del cliente, mejoras en el producto, correcciones de bugs, tareas tcnicas etc. Medio para alcanzar la visin del producto tems ordenados por prioridad de desarrollo tems de arriba: < granularidad, > detalle tems de abajo: > granularidad, < detalle Lista incompleta y dinmica en constante evolucin el ambiente evoluciona, los clientes y el Equipo de Desarrollo aprenden sobre el producto
Qu es el Product Backlog?
El Product Owner es el nico responsable por administrar el Product Backlog actualizar, ordenar y dar visibilidad Sus tems pueden poseer descripcin y estimativa El ordenamiento es realizado tratando de maximizar el ROI del proyecto influenciada por el valor que generar al cliente, riesgo y necesidad
Qu es el Product Backlog?
Prximo Sprint
Este Release
Futuros Releases
(I)
(II)
(III)
El Grooming es un proceso que asegura que el Product Backlog sea Ordenado, Estimable, Emergente y Gradualmente Refinado prerrequisito para un Sprint Planning bien realizado Hecho en colaboracin entre el Product Owner y el Equipo de Desarrollo (El Equipo generalmente dedica 10% de su tiempo) Cada Equipo de Scrum tiene su propio proceso de grooming: sesiones diarias cortas, sesiones semanales, workshop etc.
tems de alta prioridad preparados (DoR): decompuestos y refinados; claros: entendimiento comn; factibles: lo suficientemente pequeos para el sprint; probables: verificables El Equipo de Desarrollo estima los nuevos tems y corrige los antiguos
por Roman Pichler
Exactitud
Unidad de medida para determinar el tamao del tem del Product Backlog (generalmente User Stories)
Los Story points representan el tamao del esfuerzo relativo necesario para desarrollar el tem Es una medida relativa (entre os tems) Fibonacci: 0, 1, 2, 3, 5, 8, 13, 21, 34... (o adaptado: 0, 1, 2, 3, 5, 8, 13, 20, 40...)
8
STORY POINTS Inicialmente, el Equipo de Desarrollo escoge el tem de menor esfuerzo y le atribuye el tamao 2 El Equipo de Desarrollo escoge un tem y juega el Planning Poker para estimarlo, usando como base el tem de tamao 2 El Equipo de Desarrollo escoge otro tem y juega el Planning Poker para estimarlo, usando como base los tems ya estimados triangulacin
13
Para un tem, todos los miembros del Equipo de Desarrollo escogen una estimacin en las cartas no se debe mostrar hasta que todos hayan escogido Todos muestran las cartas al mismo tiempo Los miembros con la mayor y la menor estimacin deben justificar y debatir
T-Shirt Sizing
GG
Gestin de Releases
Qu es un Release?
Es la entrega al cliente de un incremento en el producto
Debe ser decidido por el Product Owner, de acuerdo con las necesidades del cliente
El Release slo puede ser realizado cuando hayan sido realizados tantos incrementos en el producto que puedan generar valor para el cliente
Gestin de Release
Escenario de Release
Release por Sprint: release a cada Sprint
Release por tem: continuous delivery Release por valor: El P. P. decide el Release cuando hayan sido creados incrementos suficientes para que el Producto sea de valor para el cliente Release por Plan: reunin de Release Planning y Plan de Release Regla general: haga Releases tan pronto quanto sea possible y con frecuencia
Gestin de Release
Escenario Release por Plan
Los tems del Product Backlog deben ser estimados por el Equipo de Desarrollo y ordenados por el Product Owner
En cada Release se debe realizar la reunin de Release Planning Meeting para crear el Plan de Release Hacer releases tan pronto quanto sea possible y con frecuencia Acompaar el progreso a travs del Release Burndown Actualizar el Plan de Release a cada Sprint
X: tiempo
Iteraciones (Sprints)
Es realizado inicialmente en la reunin de Release Planning y debe ser actualizado al final de cada Sprint
El Ciclo de Scrum
tems
Listo
Meta
Sprint Backlog
Qu es el Sprint Backlog?
Est formado por una lista de los tems que sern desarrollados durante el Sprint, las tareas correspondientes, su evolucin y las estimaciones Los tems son seleccionados del Product Backlog en el Sprint Planning Meeting Cada tem es dividido en tareas. Parte de las tareas es definida en el Planning y parte a lo largo del Sprint
Qu es el Sprint Backlog?
Las tareas pueden ser estimadas o no, pero debe ser trazado el Sprint Burndown El Sprint Backlog es modificado a lo largo del Sprint
las estimaciones (cuando las hay) son actualizadas las tareas pueden surgir para los tems ya existentes
X: tiempo
Das del Sprint
Sirve para acompaar el progreso de un sprint Inicialmente, es realizado en el Sprint Planning Meeting y debe ser actualizado a cada da del Sprint
Sprint
Qu es el Sprint?
El Sprint es la iteracin (ciclo) de desarrollo Sprint Planning Meeting Trabajo de Desarrollo Sprint Review Sprint Retrospective Cada Sprint debe contar con una meta de negocios Tienen duracin fija (de 1-2 semanas a 1 mes) y ocurren uno atrs del otro No debe haber ningn cambio que afecte el Objetivo del Sprint
Qu es el Sprint?
Cada Sprint debe tener como resultado un incremento entregable del producto que satisfaga el objetivo del Sprint Al final del Sprint, un trabajo entregable debe estar terminado
El deadline no puede ser cambiado. Slo puede variar su alcance (siempre que no afecte el objetivo del Sprint)
Durante el Sprint, el P. P. debe estar disponible para el Equipo de Desarrollo
Daily Scrum
Qu es el Daily Scrum?
Reunin de 15 minutos realizada todos los das en el mismo lugar, a la misma hora. Visibilidad Comunicacin Decisin rpida Cada miembro del Equipo de Desarrollo detalla: Lo que complet desde el ltimo Daily Scrum; Lo que va a hacer antes del prximo Daily Scrum; Qu obstculos hay en su camino. El ScrumMaster debe ocuparse de los obstculos, pero tiene que ser inmediatamente informado !no en el Daily Scrum! Es un buen momento para actualizar el Sprint Burndown!
Sprint Review
Qu es el Sprint Review?
Reunin informal en que el Equipo de Desarrollo muestra al Product Owner y a los stakeholders lo que fue hecho durante el Sprint Reunin de 4 h (Sprints de 1 mes) o 5% del Sprint El Product Owner debe estar presente El Equipo de Desarrollo demuestra lo que hizo y responde las preguntas !focalizando el incremento del producto! El PP verifica lo que fue y lo que no fue hecho en el Sprint y establece si el objetivo fue cumplido Entrada al Product Backlog - adaptacin
Sprint Retrospective
Qu es el Sprint Retrospective?
Reunin para fiscalizar como se desarroll el Sprint con relacin a los procesos: Reunin de 3h En general, el Product Owner debe estar presente Identificar y priorizar:
Qu es el Sprint Retrospective?
Cinco pasos:
Preparacin
Recolectar datos Generar insights Decidir qu hacer Terminar la retrospectiva
Qu es el Sprint Retrospective?
Qu estuvo bien?
Qu se puede mejorar?
Qu es el Sprint Retrospective?
Escalando Scrum
Escalando Scrum
Problema: proyecto muy grande El Equipo de Desarrollo debe contar con, como mximo, 9 miembros
Escalando Scrum
Solucin: diversos Equipos de Desarrollo en el mismo proyecto
Escalando Scrum
Scrum of Scrums
Escalando Scrum
Scrum of Scrums El mismo Product Backlog para todos los Equipos de Desarrollo Funciona cuando no hay grandes dependencias entre el trabajo de los Equipos de Desarrollo Minimizar dependencias, ortogonalizar el trabajo de los Equipos Cuestiones: Qu hizo el Equipo desde la ltima reunin? Qu pretende hacer el Equipo hasta la prxima reunin? Qu complic la actuacin del Equipo? El Equipo generar impedimentos para otros Equipos?
Scrum Alliance
http://www.scrumalliance.org
Scrum Alliance
Gracias!
Rafael Sabbagh
sabbagh@gmail.com rsabbagh http://rsabbagh.com http://facebook.com/SabbaghTC