Sei sulla pagina 1di 57

Mtodos giles Introduccin a Scrum

Emiliano Pereyra
Analista en Computacin Desarrollador Java Certificado Embajador Proyecto Fedora

Brindar una introduccin al concepto de desarrollo gil de software, y presentar el marco de trabajo de Scrum para llevar adelante dicho concepto

Objetivo
Mtodos giles - Introduccin a Scrum 2

Introduccin
> El concepto nace en febrero de 2001 > Se definieron los valores y principios que

permitiran desarrollar software de forma rpida y soportando un entorno cambiante


> Alternativa a metodologas tradicionales,

caracterizadas por ser rgidas y burocrticas


> Se crea la Agile Alliance

Mtodos giles - Introduccin a Scrum

Manifiesto gil: Valores


> Individuos y su interaccin sobre procesos y

herramientas
> Software que funciona sobre documentacin

exhaustiva
> Colaboracin con el cliente sobre

negociacin contractual
> Respuesta al cambio sobre seguimiento de un

plan
Mtodos giles - Introduccin a Scrum 4

Manifiesto gil: Valores


Valorar ms a los Individuos y su interaccin que a los procesos y herramientas
-

Principio ms importante Los procesos y las herramientas deben ser para la gua y el soporte de los equipos, no al revs Enfatizar los procesos y las herramientas puede ser peligroso cuando el trabajo necesita de creatividad e innovacin

Mtodos giles - Introduccin a Scrum

Manifiesto gil: Valores


Valorar ms el software que funciona que la documentacin exhaustiva
-

El manifiesto gil est a favor de la documentacin que sirve al equipo


*

Para tomar decisiones importantes, y de forma inmediata Evitar los desperdicios en el proceso de produccin

Documentacin mantenible
*

Mtodos giles - Introduccin a Scrum

Manifiesto gil: Valores


Valorar ms la colaboracin con el cliente que la negociacin contractual
-

El cliente tiene que ser un miembro ms del equipo El contrato tradicional no aporta valor al producto, sino que establece responsabilidades entre las partes para posibles disputas contractuales Se propone interaccin constante, que gue el proyecto y asegure su xito.

Mtodos giles - Introduccin a Scrum

Manifiesto gil: Valores


Valorar ms la respuesta al cambio que el seguimiento de un plan
-

Factor clave del proceso de produccin de software


*

Cambios en requerimientos y tecnologas son algo demasiado frecuente

Producto enfocado en la necesidad real del cliente, por lo tanto en su satisfaccin Exige planificacin flexible y abierta

Mtodos giles - Introduccin a Scrum

Manifiesto gil: Principios


> Los valores anteriores inspiran los 12

principios que promueve el manifiesto


> Caractersticas que diferencian una

metodologa gil de una tradicional


> Los 2 primeros son generales y resumen en

gran medida el espritu del manifiesto gil

Mtodos giles - Introduccin a Scrum

Manifiesto gil: Principios


> La principal prioridad es satisfacer al cliente a

travs de entregas tempranas y continuas de software que aporte valor al negocio


> Los cambios en los requerimientos son

bienvenidos, incluso si llegan en etapas avanzadas del desarrollo. Los procesos giles capturan los cambios para que los clientes tengan una ventaja competitiva

Mtodos giles - Introduccin a Scrum

10

Manifiesto gil: Principios


> Entregar con frecuencia software que

funcione, desde un par de semanas a un par de meses, con el menor intervalo posible entre entregas
> El cliente y los desarrolladores deben trabajar

de forma conjunta a lo largo del proyecto


> Construir proyectos alrededor de individuos

motivados. Darles el entorno y apoyo que necesiten, y confiar en que terminarn el trabajo
Mtodos giles - Introduccin a Scrum 11

Manifiesto gil: Principios


> El dilogo cara a cara es el mtodo ms

eficiente y efectivo para transmitir informacin dentro del equipo de desarrollo


> El software que funciona es la principal

medida de progreso
> Los procesos giles promueven el desarrollo

sustentable. Los directivos, desarrolladores y usuarios deben ser capaces de mantener una paz constante
Mtodos giles - Introduccin a Scrum 12

Manifiesto gil: Principios


> La atencin continua a la excelencia tcnica y

al buen diseo mejora la agilidad


> La simplicidad es esencial > Las mejores arquitecturas, requerimientos, y

diseos surgen de equipos auto-organizados


> A intervalos regulares, el equipo debe

reflexionar en como llegar a ser ms efectivos, y segn esto, ajusta su comportamiento


Mtodos giles - Introduccin a Scrum 13

gil vs. Tradicional


Metodologas giles Basadas en heursticas provimientes de buenas prcticas de produccin de cdigo Especialmente preparadas para cambios en el proyecto Impuestas internamente (por el equipo) Proceso menos controlado, con pocos principios No existe contrato tradicional, o al menos es bastante flexible El cliente es parte del equipo de desarrollo Grupos pequeos (<= 10 miembros) y trabajando en el mismo sitio Pocos artefactos Pocos roles Menos enfasis en la arquitectura del software
Mtodos giles - Introduccin a Scrum

y de gestin de y de gestin de personas tambin Tradicionales Metodologas personas tambin

Basadas en normas provinientes de estndares seguidos por el entorno de desarrollo Presentan cierta resistencia a los cambios Relativo... Relativo... Impuestas externamente Proceso muchos ms controlado, con numerosas polticas/normas

No es verdad! No es verdad! Existe un contrato prefijado


El cliente interactua con el equipo de desarrollo No es verdad! No es verdad! mediante reuniones Grupos grandes y posiblemente distribuidos Ms artefactos Ms roles

Depende... La arquitectura del software es esencial, y se expresa mediante modelos


14

Depende...

Principales Metodologas giles


Extreme Programing (XP)
-

Desarrollada por Kent Beck Potencia las relaciones interpersonales como clave para el xito en desarrollo de software Se basa en retroalimentacin continua entre el cliente y el equipo de desarrollo, y el desarrollo guiado por tests (TDD) Simplicidad en las soluciones implementadas Adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo tcnico
15

Mtodos giles - Introduccin a Scrum

Principales Metodologas giles


Scrum
-

Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle Define un marco para la gestin de proyectos Concepto utilizado con xito durante los ltimos 10 aos Est especialmente indicada para proyectos con un rpido cambio de requisitos Principales caractersticas
*
16

Sprints * Reuniones continuas de progreso y ajuste Mtodos giles - Introduccin a Scrum

Principales Metodologas giles


Crystal Metodologies
-

Desarrolladas por Alistair Cockburn Conjunto de metodologas Centrada en las personas que componen el equipo, y en la reduccin de artefactos producidos El desarrollo se considera un juego cooperativo de invencin y comunicacin El equipo de desarrollo es un factor clave
* *

Crystal Clear (3 a 8 miembros) Crystal Orange (25 a 50 miembros).


17

Mtodos giles - Introduccin a Scrum

Principales Metodologas giles


Feature -Driven Development
-

Sus impulsores son Jeff De Luca y Peter Coad Define un proceso iterativo que consta de 5 pasos Las iteraciones son cortas (hasta 2 semanas) Se centra en las fases de diseo e implementacin del sistema partiendo de una lista de caractersticas que debe reunir el software

Mtodos giles - Introduccin a Scrum

18

Principales Metodologas giles


Lean Software Development
-

Definida por Bob Charettes Basada en su experiencia con la industria automotriz japonesa Los cambios se consideran riesgos; manejados adecuadamente se pueden convertir en oportunidades que mejoren la productividad del cliente Su principal caracterstica es introducir un mecanismo para implementar dichos cambios.
19

Mtodos giles - Introduccin a Scrum

Principales Metodologas giles


Dynamic Systems Development Method
-

Nace en 1994 con el objetivo de crear una metodologa RAD unificada Principales caractersticas: es un proceso iterativo e incremental y el equipo de desarrollo y el usuario trabajan juntos Propone cinco fases: estudio de factibilidad, estudio del negocio, modelado funcional, diseo y construccin, y finalmente implementacin Las tres ltimas son iterativas, adems de existir retroalimentacin a todas las fases.
20

Mtodos giles - Introduccin a Scrum

Principales Metodologas giles


Adaptive Software Development
-

Su impulsor es Jim Highsmith Principales caractersticas son: iterativo, orientado a los componentes software ms que a las tareas y tolerante a los cambios El ciclo de vida que propone tiene tres fases esenciales: especulacin, colaboracin y aprendizaje La revisin de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo.
21

Mtodos giles - Introduccin a Scrum

Introduccin a Scrum

Mtodos giles - Introduccin a Scrum

22

Problemas Comunes
> Generalmente, las empresas enfrentan los

siguientes problemas
-

Tiempo de llegada al mercado demasiado extendido El ROI estimado frecuentemente se queda corto Alto porcentaje de proyectos fallidos Respuesta a cambios demasiado traumticas y costosas Poca orientacin al cliente Software de baja calidad
23

Mtodos giles - Introduccin a Scrum

Problemas Comunes
> Las mtodologas giles justamente fueron

pensadas para evitar (o minimizar) esta problemtica


> Brindan la flexibilidad necesarias para afrontar

esta nueva realidad de las empresas


> Implican un cambio importante

Mtodos giles - Introduccin a Scrum

24

Porqu Scrum?
> No es una metodologa en s, sino un marco

de trabajo (framework)
-

Se adapta tanto al equipo como al proyecto

> Permite una planificacin ms adaptativa que

predictiva
-

Recordemos... el cambio es nuestro amigo :-) Se pueden corregir en 2-4 semanas! (1 Sprint)

> Minimiza el impacto de decisiones incorrectas


-

Mtodos giles - Introduccin a Scrum

25

Porqu Scrum?
Se est perdiendo en la carrera de relevos...
El enfoque de la 'carrera de relevos' para el desarrollo de productos puede entrar en conflicto con los objetivos de mxima velocidad y flexibilidad. En cambio, una aproximacin holstica o 'enfoque rugbier', donde un equipo trata de recorrer una distancia como una unidad, pasando la pelota y avanzando, puede servir mejor a las exigencias de competitividad de hoy en da.
Hirotaka Takeuchi - Ikujiro Nonaka
The New New Product Development Game Harvard Business Review, January 1986
Mtodos giles - Introduccin a Scrum 26

Porque Scrum?
Enfoque carrera de relevos (sistema de planificacin de etapas programadas - NASA)

Enfoque rugbier (implemetado por Honda y Canon)


Fuente: http://es.wikipedia.org/wiki/Archivo:Ciclos_de_desarrollo.png

Mtodos giles - Introduccin a Scrum

27

Caractersticas de Scrum
> Equipos auto-organizados > Progreso del producto realizado cada 2/4

semanas (Sprint)
> Los requerimientos obtenidos son items de la

del product backlog


> La planificacin se realiza de forma acotada

para un Sprint
> Retroalimentacin continua de equipo en

funcin de los resultados obtenidos


Mtodos giles - Introduccin a Scrum 28

Sprint
> Piedra angular de Scrum > Iteracin completa de produccin
-

Diseo, codificacin y testeo Definido por el equipo

> Tiene una duracin de 2 4 semanas


-

> Permite mantener un ritmo constante de

produccin
-

Y la motiivacin del equipo fundamental.


29

Mtodos giles - Introduccin a Scrum

El Proceso Scrum
Anlisis de Negocio

Lista principal de funcionalidades, caractersticas y trabajos requeridos Cada item es priorizado por el Product Owner en funcin de su valor y riego Es constantemente revisado (agregando, quitando y modificando items) para maximizar el xito del equipo y del proyecto

Mtodos giles - Introduccin a Scrum

30

El Proceso Scrum
Planificacin Etapa crucial de Scrum Se analizan los items ms importantes (prioritarios) del Product Backlog Se define lo que se va a implementar en el siguiente Sprint Resultado de la planificacin: - Meta del Sprint - Sprint Backlog - Fecha de demo - Lugar y horario de la reunin diaria

Mtodos giles - Introduccin a Scrum

31

El Proceso Scrum
Objetivo

Se compone de las tareas ms importantes (prioritarias) del Product Backlog Es lo que se va a implementar en 1 Sprint

Mtodos giles - Introduccin a Scrum

32

El Proceso Scrum
Ingeniera / Produccin Control Seguimiento

Ciclo de produccin El equipo trabaja en los items definidos en el Sprint Backlog No se debe cambiar nada de lo planificado (tareas, fechas, etc) Dada una eventualidad, el Product Owner podra pedirle al equipo que cort el Sprint, para replanificar y comenzar uno nuevo

Mtodos giles - Introduccin a Scrum

33

El Proceso Scrum
Entrega

Resultado del Spring Parte del producto a construir (mdulo, componente, informe de pruebas...) Potencial despliegue en produccin del incremento realizado

Mtodos giles - Introduccin a Scrum

34

Spring Framework
Roles

Product Owner Scrum Master Equipo

Reuniones

Planificacin del Sprint Revisin del Sprint Retrospectiva del Sprint Diaria de Scrum

Artefactos

Backlog de Producto Backlog de Sprint Grfico Burndown


Mtodos giles - Introduccin a Scrum 35

Spring Framework
Roles

Product Owner Scrum Master Equipo

Reuniones

Planificacin del Sprint Revisin del Sprint Retrospectiva del Sprint Diaria de Scrum

Artefactos

Backlog del Producto Backlog del Sprint Grfico Burndown


Mtodos giles - Introduccin a Scrum 36

Scrum Framework
Product Owner
-

Define las caractersticas del producto a construir Decide las fechas de entrega y el contenido de las mismas Responsable de la rentabilidad de producto (ROI) Prioriza las caractersticas de acuerdo a su valor en el dominio Ajusta el alcance y la importancia de las caractersticas en cada iteracin Acepta o rechaza el trabajo realizado
37

Mtodos giles - Introduccin a Scrum

Scrum Framework
Scrum Master
-

Promueve los valores y las buenas prcticas de Scrum Elimina los impedimentos que puedan frenar el Sprint Mantiene al equipo enfocado en el objetivo Asegura la funcionalidad y productividad del equipo Responsable de mantener un ritmo sustentable Protege al equipo de interferencias externas
*

Esta al servicio del equipo


38

Mtodos giles - Introduccin a Scrum

Scrum Framework
El Equipo de Desarrollo
-

Generalmente de 5 a 10 personas Auto organizados Multidiciplinario


*

Desarrolladores, testers, diseadores, etc

Sin clasificacin jerrquica Con dedicacin full-time


*

Puede haber excepciones, por ejemplo, dbas

Enfocados en un objetivo comn: el Sprint


39

Mtodos giles - Introduccin a Scrum

Roles en Scrum...
Involucrado...

Comprometido!

Usuarios Stackeholders Gerentes otros...

Product Owner Scrum Master Equipo de Desarrollo

Mtodos giles - Introduccin a Scrum

40

Spring Framework
Roles

Product Owner Scrum Master Equipo

Reuniones

Planificacin del Sprint Revisin del Sprint Retrospectiva del Sprint Diaria de Scrum

Artefactos

Backlog del Producto Backlog del Sprint Grfico Burndown


Mtodos giles - Introduccin a Scrum 41

Capacidad Capacidad del equipo del equipo

Reunin de Planificacin
Priorizacin del Sprint

Backlog del Backlog del Producto Producto

Analizar y evaluar el backlog del Producto Seleccionar una meta para el Sprint

Meta del Meta del Sprint Sprint

Condiciones Condiciones del negocio del negocio

Planificacin del Sprint

Feedback Feedback del Producto del Producto

Tecnologa Tecnologa

Decidir como alcanzar la meta del Sprint (diseo de alto nivel) Crear el backlog del Sprint (tareas) a partir de los items del backlog del producto (historias de usuario) Estimar el backlog del Sprint (en lo posible, en puntos, no horas...)

Backlog Backlog del Sprint del Sprint

Mtodos giles - Introduccin a Scrum

42

Scrum Framework
Planificacin del Scrum
-

El equipo selecciona los items del backlog del producto que se compromete a implementar Se crea el Sprint backlog
*

Cada item (historia de usuario) puede comprender ms de una tarea (caso de uso)

El Scrum Master coordina todos los esfuerzos Se puede considerar realizar un diseo de alto nivel
*

Segn sea apropiado

Mtodos giles - Introduccin a Scrum

43

Scrum Framework
Reunin Diaria
-

Claves
* *

Duracin de 15' Todos de pie (sensacin de urgencia) Slo los cerdos pueden hablar Podran participar terceros

No es para resolver problemas


* *

Ayuda a evitar reuniones innecesarias

Mtodos giles - Introduccin a Scrum

44

Scrum Framework
Reunin Diaria
-

Todos responden 3 preguntas


Qu hiciste ayer? Qu hiciste ayer? Qu vas a hacer hoy? Qu vas a hacer hoy? Hay algo que te impida Hay algo que te impida hacer tu trabajo? hacer tu trabajo?

Promueve la transparencia en el equipo


*

No es para control, sino para seguimiento


45

Mtodos giles - Introduccin a Scrum

Scrum Framework
La Revisin del Sprint
-

El equipo presenta lo que se logr durante el Sprint Puede ser en forma de demo Debe ser informal
* *

No mas de 2hs de preparacin Sin diapositivas

Todo el equipo participa Se invita a todo el mundo

Mtodos giles - Introduccin a Scrum

46

Scrum Framework
Retrospectiva del Sprint
-

Analizar que es lo que est funcionando y que no Dicha revisin no puede superar los 2hs Se realiza despus de cada Sprint Todo cerdillo tiene que participar Objetivo: Volvernos ms efectivos!

Mtodos giles - Introduccin a Scrum

47

Spring Framework
Roles

Product Owner Scrum Master Equipo

Reuniones

Planificacin del Sprint Revisin del Sprint Retrospectiva del Sprint Diaria de Scrum

Artefactos

Backlog de Producto Backlog de Sprint Grfico Burndown


Mtodos giles - Introduccin a Scrum 48

Scrum Framework
Backlog del Producto
-

Es el corazn de Scrum Lista de requerimientos ordenados por orden de importancia


*

Ordenada por el Product Owner

Cada item tiene que estar expresado en trminos del dominio

Mtodos giles - Introduccin a Scrum

49

Scrum Framework
Backlog del Producto
ID 1 Nombre Exportacin de padrn de clientes Descripcion Generar un txt con los clientes del negocio Imp Est Validacin 4 3 Generar el archivo. El archivo generado debe contener a todos los clientes cargados .. Notas Modelar con UML los puntos claves: formatos de exportacin y traduccin de datos ..

2 ...

..

...

..

..

Mtodos giles - Introduccin a Scrum

50

Scrum Framework
Backlog del Sprint
-

Generado a partir de backlog del producto


*

Los items mas importantes

Resultado de la reunin de planificacin del Sprint Cada miembro del equipo selecciona item/s en los que va a trabajar
*

El trabajo jamas se asigna

Los miembros del equipo pueden modificar el backlog del Sprint


*

Antes de empezar el Sprint, obviamente...


51

Mtodos giles - Introduccin a Scrum

Scrum Framework
Grfico Burndown
-

Nos indica la cantidad de trabajo remanente


*

Cuantos puntos quedan sin trabajo

Actualizarlo durante los scrum diarios Brinda informacin valiosa de progreso


* *

Fuente de toma de decisiones durante el sprint Potenciales problemas

Mtodos giles - Introduccin a Scrum

52

Scrum Framework
Grfico Burndown

Mtodos giles - Introduccin a Scrum

53

Conclusiones
> Scrum no es una metodologa es si, sino un

framework
> Por lo anterior, sumamente adaptable
-

A los equipos A los proyectos

> Mantiene el foco sobre lo importante...

Satisfaccin del Cliente


Mtodos giles - Introduccin a Scrum 54

A Jugarlo...

Mtodos giles - Introduccin a Scrum

55

Fuentes
> Mountain Goat Software
-

http://www.mountaingoatsoftware.com/scrum http://blog.crisp.se/henrikkniberg http://agilemanifesto.org/

> Henrik Kniberg


-

> Manifesto gil


-

Mtodos giles - Introduccin a Scrum

56

Muchas Gracias!!!

Emiliano Pereyra
Analista en Computacin Desarrollador Java Certificado Embajador Proyecto Fedora

Potrebbero piacerti anche