Computers">
Metodologias Agiles Vs 4.0
Metodologias Agiles Vs 4.0
Metodologias Agiles Vs 4.0
Federico Villarreal
Ao de la Diversificacin Productiva y del Fortalecimiento de la
Educacin
Facultad
Sistemas
Escuela
Curso
:
:
Ingeniera de Sistemas
Profesor
Tema
Metodologas Agiles
Alumnos
2015
Metodologas Agiles
Pgina 1
INDICE
INTRODUCCIN..3
METODOLOGIAS AGILES.4
KAMBAN9
EXTREMA PROGRAMACION XP11
SCRUM..............13
Metodologas Agiles
Pgina 2
INTRODUCCIN
En los ltimos aos se ha percatado que muchos proyectos pblicos y privados, se han
puesto en cuestin, producto de los modelos, mtodos, tcnicas tradicionales, que
escapaban casi siempre de la realidad operativa; y es hoy donde se pone en manifiesto
una nueva tendencia, la denominada el cuerpo de conocimiento de la Gestin de
proyectos (Project Management).
Si bien es claro que las metodologas tradicionales en la gestin de proyectos, tuvo sus
orgenes en el sector industrial, y luego fueron extendindose a otros mbitos y con
dcadas en el sector servicios y tambin en el sector softwares;, se ha demostrado
menos eficaces cuando la gestin de un proyecto presenta ya desde su misma
concepcin- un grado importante de incertidumbre en su desarrollo que finalmente no
permite una planificacin adecuada y lineal; y ante todos estos fracasos demostrados
con altos costos y fracasos organizacionales un sector fue quien decidi apostar por un
denominador diferente y de riesgo y que hoy se est convirtiendo el perfil
organizacional y el de los nuevos profesionales en donde los resultados y el tiempo
(Oportunidad) priman en el xito o fracaso.
La hoy tan llamada agilidad de proyectos, es el competidor fuerte del xito o fracaso,
aunque no se tengan muchas experiencias documentadas y en el mercado se encuentran
distintos modelos y tcnicas, todas ellas agrupadas en un conjunto de experiencias y
modelos que resumen solo la practicidad en el enfoque y desarrollo colaborativo.
Metodologas Agiles
Pgina 3
Metodologas Agiles
Pgina 4
El Manifesto Agil: Engloba metodologias que hasta ese momento se le conocia como "Metodologias de
Desarrollo de Software de peso liviano"
Programacion Extrema (XP): Kent Beck desarrolla el concepto de Programacion Extrema, formulo
conceptos de Historias de Usuarios y Planifcacion de Releases. La metodologia especifca buenas
practicas para la planifcacion, gestion, diseo, codifcacion y pruebas.
Desarrollo de Software Adaptativo: La idea evoluciono hacia las metodoligias de Desarrolllo Rapido de
Aplicaciones (RAD), la metodologia propone un ciclo de vida de 3 fases: "Especulacion, Colaboracion y
Aprendizaje".
Scrum: Ideado por Ken Schwaber y Jef Sutherland, como se sabe Scrum es practicamente el estandar de
facto para el desarrollo agil.
Mtodos Crystal, el punto de inicio de la evolucin de las metodologas de desarrollo de software que
eventualmente resultaron en lo que hoy se conoce como el movimiento gil.
Taiichi Ohno inventa el mtodo Kanban en Toyota. El Lean Manufacturing (Manufactura esbelta) es una
fuente de inspiracin y precursor del movimiento gil.
2001
1999
1999
1995
1992
1974
1940
1930
Manifiesto gil: Surge de una reunin que fue convocada por Kent Beck, a travs de la
cual 17 crticos buscaron una alternativa de solucin frente a las metodologas formales
como es el caso de CMM, ya que las consideraban herramientas demasiado
complicadas y rgidas por su carcter normativo.
Los cuatro postulados que manifiestan son los siguientes:
1. Valoramos ms a los individuos y su interaccin que a los procesos y las
herramientas:
Existen muchas tareas que requieren talento y
necesitan personas que lo aporten y por ende
trabajen con una actitud adecuada.
El know how o saber cmo hacer los procesos
tiene un valor muy importante es por ello que
se le da el mayor protagonismo a los
individuos, sin dejar de lado la eficiencia que
tienen las herramientas utilizadas.
Metodologas Agiles
Pgina 5
Metodologas Agiles
Pgina 6
10
11
12
Pgina 7
Metodologas Agiles
Pgina 8
KANBAN
Pudiendo tener ms columnas dependiendo de los estados a los que pasan las tareas:
Metodologas Agiles
Pgina 9
Descripcin de la tarea.
Persona asignada.
Metodologas Agiles
Pgina 10
Podra que necesitaras ms columnas para diferencias otros estados de las tareas. O
podras ser que necesitaras utilizar los colores no para diferencias proyectos sino
subtareas de una misma tarea, por ejemplo. Todo es vlido.
Porque te permite ver grandes avances en el proyecto
Al final de la semana cuando se ve la evolucin del tablero Kanban, se ver qu se ha
hecho exactamente y que has avanzado mucho.
EXTREME PROGRAMMING XP
Metodologas Agiles
Pgina 11
Qu conseguimos?
OBJETIVOS:
Si el producto no cumple con las necesidades del cliente: El cliente es parte del
equipo y est presente en la toma de decisiones.
Rigidez frente a los cambios: Los cambios son tomados como parte natural del
proceso.
Otros Ejemplos:
Metodologas Agiles
Pgina 12
Especulacin
Colaboracin y
Aprendizaje.
Metodologas Agiles
Pgina 13
METODOLOGAS SCRUM
Antecedentes histricos
Metodologas Agiles
Pgina 14
Descripcin de Scrum
Segn sus creadores, Scrum es un proceso gil que puede utilizarse para
administrar y controlar desarrollo de software utilizando prcticas que involucran
iteraciones con incremento de funcionalidad.
ROLES
En un proyecto scrum, a las personas que participan en el mismo, las podemos
dividir en dos grandes grupos: Pigs que son todas aquellas personas comprometidas
con la realizacin del proyecto y las prcticas de scrum y Chickens que son aquellas
personas que no forman parte del proceso de Scrum pero que son importantes y
necesarias en el proyecto dado que pueden ocupar roles como especialistas del negocio
o de alguna tecnologa particular. Esta divisin tiene su origen en un viejo chiste sobre
Pigs & Chickens.
A pig and a chicken are walking down a road. The Chicken looks at the pig and says
"Hey, why don't we open a restaurant?" The pig looks back at the chicken and says
"Good idea, what do you want to call it?" The chicken thinks about it and says "Why
don't we call it 'Ham and Eggs'?" "I don't think so" says the pig, "I'd be committed but
you'd only be involved"
Para la descripcin de scrum, solamente se hablar sobre los Pigs y los distintos
roles que ellos pueden adquirir. Los mismos se dividen, segn sus responsabilidades
dentro del proceso scrum, en tres roles que se detallan a continuacin:
PRODUCT OWNER
Se encarga de crear una versin inicial muy general de los requerimientos,
objetivos sobre el retorno de la inversin y planes de entrega. Este rol se encarga de
establecer prioridades sobre los requerimientos asegurndose que la funcionalidad ms
valiosa e importante se produzca en tiempo y forma como es debido. En scrum no existe
ningn criterio para la definicin de los requerimientos; lo importante es que los
mismos se encuentren relacionados con el sistema/aplicacin a desarrollar.
SCRUM MASTER
Es responsable de velar por la correcta implementacin del proceso scrum. Debe
ensear a toda persona involucrada en el proyecto, las tcnicas y procedimientos de
scrum teniendo en cuenta, que los mismos no deben estar desalineados con las polticas,
Metodologas Agiles
Pgina 15
TEAM
Es un grupo de personas encargadas de desarrollar e implementar la
funcionalidad pactada. El equipo se auto administra y auto organiza. Las personas que
lo componen, deben utilizar su ingenio para incrementar la funcionalidad cumpliendo
con los requerimientos a lo largo de cada iteracin. Los miembros del equipo son
responsables del xito de cada sprint.
La auto administracin y auto organizacin es un aspecto crucial en Scrum. Es
indispensable que todos los miembros del Team estn comprometidos con su trabajo y
para ello es necesario contar con la motivacin de los mismos. En un Team que se auto
organiza y auto administra, no hay una persona encargada de controlar que todos los
miembros estn cumpliendo sus tareas en tiempo y forma. Sino que cada uno de los
integrantes es responsable de realizar sus tareas y adems debe asegurarse que el resto
de los miembros hagan lo propio con sus tareas respectivas. El Team debe trabajar en
conjunto como un bloque. Sus resultados son producto del trabajo colectivo y no de
esfuerzos individuales.
Metodologas Agiles
Pgina 16
hacer interactuar a los distintos sub equipos. Para ello puede realizarse, semanalmente,
una reunin de Scrum con un representante de cada sube quipo. De esta forma los
equipos estarn al tanto de las actividades de los otros equipos.
La composicin del Team es algo que no puede ser absoluta, dado que cada
proyecto de software tiene sus propias caractersticas. Es decir algunos proyectos
necesitarn mayor presencia de personas para ocupar ciertos roles que otros. Por
ejemplo, en un proyecto relacionado a data Ming, es necesario contar con algn experto
en dicha tecnologa y un administrador de bases de datos, pero en un proyecto
empresarial estos roles pueden no ser necesarios. Existe la posibilidad que el objetivo de
un sprint sea Encontrar la mayor cantidad de fallas en el sistema, con lo cual en ese
caso, el Team puede estar formado solamente por personal de testing. Tambin puede
ser factible, que el objetivo de un sprint sea Presentar el diseo de la refactorizacin
necesaria para utilizar una nueva librera de un tercero, por lo tanto en ese caso, es muy
probable que el Team est formado por un grupo de arquitectos, diseadores y
desarrolladores sin contar con analistas funcionales ni personal de testing.
Metodologas Agiles
Pgina 17
CICLO DE VIDA
El ciclo de vida de Scrum puede verse en la siguiente imagen obtenida de
www.controlchaos.com (sitio creado y mantenido por el creador de scrum Ken
Schwaber).
Metodologas Agiles
Pgina 18
Cada tem que pertenece al Product Backlog posee una prioridad y un tiempo
estimado para convertirlos en funcionalidad del producto. Los tiempos siempre deben
ser das y su precisin es mayor a mayor prioridad del requerimiento
Normalmente suele dividirse est reunin en dos etapas. En la primer etapa el
Product Owner presenta al equipo, una lista de los requerimientos que poseen mayor
prioridad al Team. Luego ambos, el Product Owner y los miembros del Team trabajan
en conjunto para determinar cules son los requerimientos que se desarrollarn en el
siguiente sprint. Al finalizar esta primera etapa, el Team se compromete a desarrollar un
conjunto o toda la funcionalidad especificada a travs del Product Backlog resultante.
En la segunda etapa, los miembros del Team definen cmo llevarn a cabo el
compromiso asumido en la primera etapa de la reunin y crearn una primera versin de
lo que se conoce como Sprint Backlog. El mismo consiste de un documento que
contiene una lista de tareas indicando, para cada tarea, la persona asignada y la cantidad
de trabajo pendiente estimada en algn(os) da(s) particular(es).
Aqu debe definirse la arquitectura del sistema. Si bien los miembros del Team
pueden estar en condiciones de hacerlo, en algunas ocasiones es aconsejable contar con
la presencia de un(a) arquitecto(a) que pueda aportar su experiencia. En el caso que el
arquitecto no forme parte del Team, sus propuestas deben contar con la aprobacin del
Metodologas Agiles
Pgina 19
Team; es decir sus sugerencias de arquitectura no deben ser impuestas a los integrantes
del Team.
Implementacin del sprint
En esta etapa, los miembros del equipo se encargaran de proveer un incremento
de funcionalidad del producto o sistema,
tomando como entrada, aquellos
requerimientos provenientes del Product Backlog con los cuales han asumido el
compromiso de implementarlos en la reunin de planeamiento del sprint. Para ello ser
necesario uno o ms equipos realizando las siguientes tareas:
Desarrollo
Deployment de una versin con sus Release notes.
Revisiones
Ajustes
Pgina 20
Pgina 21
primer paso para la definicin de tems potenciales del Product Backlog del prximo
sprint.
Tanto el Product Owner como los stakeholders destinatarios de la presentacin
pueden identificar funcionalidad que no haya sido implementada o que no haya sido
implementada de la manera esperada. Si esto ocurriese, dicha funcionalidad debe
incluirse nuevamente en el Product Backlog para que sea implementada en el prximo
sprint. Es responsabilidad del Product Owner, la asignacin de la prioridad
correspondiente.
Este tipo de reuniones no debera durar ms de cuatro horas, aunque la duracin
de la misma va a estar condicionada por la duracin del sprint y el incremento de
funcionalidad implementada en el mismo.
Vale la pena destacar, que no debe perderse tiempo en presentar la funcionalidad
que se encuentre a medio implementar. Es decir si no se han completado todas las tareas
necesarias para brindar la funcionalidad correspondiente a un tem del Product Backlog
pero se ha llegado a implementar parte de esa funcionalidad, la misma no debe ser
presentada.
Dado que uno de los lemas de las tecnologas giles es utilizar la mayor cantidad
de tiempo en hacer y no planear lo que hay hacer se aconseja que el Team no
dedique demasiado tiempo a la preparacin de dicha presentacin. Una hora debera ser
ms que suficiente.
Por ltimo, el ScrumMaster es el encargado de agendar y programar esta reunin
invitando a los participantes correspondientes.
Metodologas Agiles
Pgina 22
ARTEFACTOS DE SCRUM
Product Backlog
Los requerimientos a desarrollar se encuentran definidos en el Product Backlog. El
mismo consiste de una planilla que representa los requerimientos iniciales del proyecto.
Los requerimientos que integran esta lista no poseen gran detalle, pero si son lo
suficientemente claros para servir como punto de partida para que el Team pueda ser
capaz de desglosarlos en tareas a realizar. Es muy importante remarcar que los
requerimientos deben estar ordenados segn su prioridad, los primero tems de la lista
son lo que poseen mayor prioridad.
El Product Backlog evoluciona constantemente segn las necesidades del negocio.
Sin embargo, debe tenerse en cuenta que todo cambio al mismo debe estar
documentado. A continuacin se presentan algunos ejemplos de Product Backlog.
Ejemplo 1:
Ken Schwaber propone la siguiente planilla para utilizar como Product Backlog.
En dicha planilla, los tems estn separados por los Sprints en los cuales fueron
realizadas. Es decir todas las filas que se encuentran arriba de Sprint-1 corresponden a
requerimientos que fueron realizados en el Sprint-1. Los tems que se encuentran por
Metodologas Agiles
Pgina 23
debajo de la fila con ttulo Sprint-1 y por encima de la fila con ttulo Sprint-2
corresponden a requerimientos que fueron realizados en el Sprint-2 y as sucesivamente.
Las primeras cuatro columnas se refieren a: una descripcin del tem, un tiempo
estimado inicial, un factor de ajuste y un tiempo estimado ajustado. Las columnas
siguientes representan los Sprints en los cuales el Product Backlog es desarrollado.
Cuando un tem es identificado e ingresado en el Product Backlog, el tiempo estimado
para implementarlo se agrega en la columna correspondiente al Sprint actual. Tal cual
puede apreciarse en el ejemplo anterior todos los tems, salvo Publish Facility For
Entire Project, Publishing It As HTML Web Pages que fue identificado en el Sprint-3,
fue identificado en el Sprint-1.
En dicho ejemplo, tambin puede apreciarse que el tem Display Tree View Of
Product Backlog, Releases, Sprints se encuentra duplicado. Esto es as porque dicho
tem no fue completado en el Sprint-1 y por lo tanto fue movido al Sprint-2.
Alternativamente, si el Product Owner determinara que su prioridad era menor, podra
haberse movido a otro Sprint o incluso podra haberse eliminado.
Es importante que el lector aprecie que este esquema permite saber cundo
fueron identificados los requerimientos y durante que etapa del proyecto fueron
implementados.
Ejemplo 2.
En algunas circunstancias, es deseable utilizar una planilla ms sencilla que
simplemente posee los tems agrupados segn su prioridad indicando un tiempo de
trabajo estimado para implementarlo y la persona que realiz dicha estimacin. Es muy
comn ver tres grupos de niveles de prioridad, como puede apreciarse en la siguiente
imagen.
Metodologas Agiles
Pgina 24
Burndown Chart
Un grfico de burndown indica la cantidad de trabajo pendiente a lo largo del
tiempo. Para la cantidad de trabajo pendiente suele utilizarse das como unidad,
mientras que para el tiempo suelen utilizarse los Sprints como unidad.
El mismo sirve como una forma de visualizar la correlacin entre la cantidad de
trabajo requerida y el progreso del Team reduciendo dicha cantidad. Este grfico no
slo representa el trabajo realizado, sino la velocidad con la cual se realiza el
mismo.
A continuacin se presenta el grfico de burndown correspondiente al Ejemplo 1
del apartado Product Backlog.
Metodologas Agiles
Pgina 25
Sprint Backlog
El Sprint Backlog es una lista de tareas que el Team se ha comprometido a realizar a
lo largo del Sprint. Representa el trabajo necesario para implementar los requerimientos
del Product Backlog correspondientes al corriente Sprint. Esta lista de tareas es
confeccionada en la segunda etapa de la reunin de planeamiento del Sprint y la misma
es actualizada da a da por los miembros del Team a lo largo de todo el Sprint.
Las tareas deben ser definidas de forma tal que todos los miembros del Team
entiendan de qu se tratan y Scrum sugiere que cada tarea posea una duracin de 4 a 16
horas; es decir no ms de dos das. Las tareas que requieran ms de 16 horas son
consideradas como tareas que todava no han sido desglosadas lo suficientemente para
que todos los miembros del Team entiendan de qu se tratan. Sin embargo esto es una
sugerencia y no debe tomarse como un absoluto.
A continuacin se presenta un ejemplo de Sprint Backlog. Las filas representan las
tareas, quin fue la persona que la propuso, la persona a cargo de realizarla, el estado de
la misma y la cantidad de trabajo pendiente para desarrollarla.
Ejemplo 1:
Metodologas Agiles
Pgina 26
Metodologas Agiles
Pgina 27
Ejemplo 2:
Days
Date
Logged
Description
1-Feb-15
UI Object Model
1-Feb-15
UI Framework
1-Feb-15
2-Feb-15
Setup
environment
2-Feb-15
2-Feb-15
Design Db Model
3-Feb-15
3-Feb-15
3-Feb-15
9 10
1 0
6 6
0 0
20
17
11
11
15
11
7 6
developer
24
Es importante recordar que slo los miembros del Team estn autorizados a
actualizar y mantener el Sprint Backlog. Este documento permite visualizar el trabajo
realizado y la cantidad de trabajo pendiente para completar la funcionalidad pactada en
el Sprint. Por ende el Sprint Backlog debe ser actualizado diariamente y el mismo debe
reflejar la realidad del da a da del trabajo realizado por los miembros del Team.
Tambin vale la pena destacar que sin importar el grado de avance del Sprint, si
algn integrante del Team identifica una nueva tarea, debe agregarla a dicho documento
indicando el tiempo de trabajo pendiente para su realizacin. Este es el caso de la tarea
Analyse KEG Data Encumbrance del Ejemplo 1 que fue identificada y agregada el
sptimo da del Sprint.
Metodologas Agiles
Pgina 28
BIBLIOGRAFA
AgileAlliance website http://www.agilealliance.org
IBM Staff. Rational Software White Paper. Rational Unified Process Best Practices
for Software Development Teams. Rev. 11/01
Krebs, Joe. RUP in the Dialogue with Scrum. 2005.
http://www-128.ibm.com/developerworks/rational/library/feb05/krebs/#N10162
Kruchten, Philippe. The Rational Unified Process: An Introduction, 3 rd edition. Addison
Wesley. December 2003.
Larman, Craig. Agile and Iterative Development: A Managers guide. Addison Wesley,
2003.
Schwaber, Ken. Advanced Development Methods. SCRUM Development Process.
2006. http://jeffsutherland.com/oopsla/schwapub.pdf
Schwaber, Ken. Agile Project Management with Scrum. Microsoft Press, 2004.
Schwaber, Ken and Beedle, Mike. Agile Software Development with Scrum. Prentice
Hall, 2002.
Schwaber, Ken. Controlled Chaos: Living on the Edge. American Programmer,
April 1996.
Schwaber, Ken. What is Scrum? OOPSLA. 1995.
Scrum. http://www.controlchaos.com/
ScrumAlliance website http://www.scrumalliance.org
Sutherland, Jeff. ScrumWeb Home Page: A Guide to the SCRUM Development
Process. Jeff Sutherlands Object Technology Web Page, 1996
http://www.tiac.net/users/jsuth/scrum/index.html
Metodologas Agiles
Pgina 29