Académique Documents
Professionnel Documents
Culture Documents
Agile ........................................................................................................................ 2
SCRUM ................................................................................................................ 7
Agile
La palabra gil generalmente hace referencia a la capacidad de moverse o
responder con rapidez y facilidad; ser gil. En cualquier tipo de disciplina de
administracin, gil es una calidad, y, por lo tanto, es algo bueno que se debe
buscar. Especficamente, la administracin gil de proyectos implica adaptarse
durante la creacin de un producto, servicio u otro resultado.
El surgimiento de gil
Los rpidos cambios en la tecnologa, las demandas y expectativas del
mercado han creado mayores desafos en el desarrollo de productos y servicios
mediante el uso de modelos tradicionales de gestin de proyectos. Esto abri el
camino para la conceptualizacin e implementacin de mtodos y valores giles en
muchas organizaciones. Los modelos de desarrollo gil atienden las deficiencias
asociadas con los modelos tradicionales de gestin de proyectos para satisfacer las
crecientes demandas ambientales y expectativas que enfrentan las organizaciones.
Dado a que los modelos tradicionales de gestin de proyectos en general hacen
hincapi en una amplia planificacin anticipada y que se ajustan al plan una vez que
se establece, tales modelos no tuvieron xito al intentar cumplir la realidad de los
frecuentes cambios ambientales.
El Manifiesto gil
En febrero del 2001, un grupo de 17 gurs de la informtica, desarrolladores
de software y administradores, se reunieron para discutir los mtodos de desarrollo
de software ligero. Formaron la Alianza gil (Agile Alliance) y las discusiones en
estas reuniones resultaron despus en un Manifiesto para el desarrollo gil de
software (Manifesto for Agile Software Development). El manifiesto fue escrito por
Flowler y Highsmith (2001) y suscrito despus por todos los participantes a fin de
establecer los lineamientos bsicos de cualquier metodologa gil.
El propsito del Manifiesto gil se plasm de la siguiente forma:
Mtodos giles
En la dcada de los noventa y a principios del 2000, se origin y obtuvo fuerza
una serie de metodologas giles. Aunque difieren en una variedad de aspectos, lo
que tienen en comn se deriva de su apego al Manifiesto gil.
De entre todos los mtodos de desarrollo gil, se describen las siguientes, siendo
las que ms denominan las primeras tres:
SCRUM
Programacin extrema (Extreme Programming)
Lean Kanban
Mtodos Crystal (Crystal Methods)
Mtodos de desarrollo de sistemas dinmicos (Dynamic Systems
Development Methods)
Desarrollo orientado a funcionalidades (Feature Driven Development)
Desarrollo guiado por pruebas (Test Driven Development)
Desarrollo adaptativo de software (Adaptive Software Development)
Proceso unificado gil (Agile Unified Process)
Desarrollo guiado por el dominio (Domain Driven Development)
SCRUM
Scrum-Team
Programacin extrema
La programacin extrema (conocida en ingls como: Extreme Programming),
creada en la Chrysler Corporation, obtuvo impulso en la dcada de 1990. La
programacin extrema, o XP, por sus siglas en ingls, evita el aumento radical del
costo de software cambiante con el paso del tiempo. Las caractersticas claves del
XP incluyen el desarrollo incremental, horarios flexibles, cdigos de prueba
automatizados, comunicacin verbal, diseo en evolucin constante, as como la
colaboracin de cerca a corto y largo plazo se deriva de todos los que participan.
Lean Kanban
El concepto de Lean optimiza el sistema de una organizacin para producir
resultados valiosos sobre la base de sus recursos, necesidades y alternativas,
mientras se reducen las perdidas. Las prdidas (waste) pudieran ser por la
fabricacin de algo equivocado, la imposibilidad de aprender o de prcticas que
impidan el proceso. Debido a que estos factores tienen una naturaleza dinmica,
una organizacin Lean evala la totalidad de su sistema y refina constantemente
sus procesos. El fundamento de Lean es la reduccin de la duracin de cada ciclo
(cada interaccin), lo cual lleva a un aumento en la productividad mediante la
reduccin de retrasos y ayuda a detectar errores en las primeras etapas, reduciendo
en consecuencia la cantidad total del trabajo necesario para finalizar una tarea. Los
principios del software Lean se han implementado con xito en el desarrollo de
software. Kanban literalmente significa cartel o letrero, e implica el uso de ayuda
visual para dar seguimiento a la produccin. El concepto fue introducido por Taiichi
Ohno, considerado como el padre de los Sistemas de Produccin Toyota (TPS, por
sus siglas en ingls). El uso de ayuda visual es eficaz y se ha convertido en una
prctica comn. Algunos ejemplos incluyen: tarjetas de tarea, tableros de Scrum y
grficas de trabajo terminado (Burndown Charts). Dichos mtodos generaron
atencin debido a su prctica en Toyota, empresa lder en gestin de procesos.
Lean Kanban integra el uso de mtodos de visualizacin segn lo prescrito por
Kanban aunado a los principios de Lean, creando as un sistema visual de gestin
de proceso evolutivo incremental.
Mtodos Crystal
Las metodologas Crystal para el desarrollo de software fueron introducidas
por Alistair Cockburn a principios de la dcada de 1990. La intencin de los mtodos
Crystal es centrarse en las personas; ser ligeros y fciles de adaptar. Debido a que
las personas son primordiales, el proceso de desarrollo y las herramientas no son
fijas, sino que se ajustan a los requerimientos y caractersticas especficas del
proyecto. Se utiliza el espectro de colores para decidir sobre la variante de un
proyecto. Los factores tales como la comodidad, el dinero a discrecin, dinero
esencial y la vida, juegan un papel importante para determinar el peso de la
metodologa, lo cual se representa en varios colores del espectro.
La familia Crystal se divide en: Crystal Clear (claro como el cristal), Crystal
Yellow (cristal amarillo), Crystal Orange (cristal naranja), Crystal Orange Web
(cristal naranja web), Crystal Red (cristal rojo), Crystal Maroon (cristal marrn),
Crystal Diamond (cristal diamante) y Crystal Sapphire (cristal zafiro).
El FDD define seis roles principales: Gerente del proyecto, arquitecto en jefe,
gerente de desarrollo, programadores jefes, propietarios de clase y expertos del
dominio, aunados a una serie de funciones complementarias. El proceso FDD es
iterativo y consiste en el desarrollo de un modelo general; en crear una lista de
caractersticas y despus planificar, disear y crear con base en la caracterstica.
El desarrollo guiado por pruebas (TDD, por sus siglas en ingls), se puede
clasificar en dos niveles: Aceptacin de TDD (ATDD, en ingls), lo cual requiere de
una prueba distinta de aceptacin, y Desarrollador TDD (DTDD en ingls) que
implica la redaccin de una sola prueba de desarrollo. El TDD se ha popularizado
debido a las numerosas ventajas que ofrece como los resultados confiables, la
retroalimentacin constante y la reduccin de tiempo de depuracin (debugging).
El proceso unificado gil modela sus procesos y tcnicas con base en los
valores de las herramientas de la simplicidad, agilidad, personalizacin, auto-
organizacin e independencia y se enfoca en actividades de alto valor. Los
principios y valores del proceso unificado gil se ponen en accin en las fases de:
incepcin (inicio), elaboracin, construccin y transicin.
Desarrollo guiado por el dominio
El desarrollo guiado por el dominio (DDD, por sus siglas en ingls) es un
mtodo de desarrollo gil diseado para administrar diseos complejos con la
implementacin vinculada a un modelo evolutivo. Fue conceptualizado en el 2004
por Eric Evans y gira en torno al diseo de un dominio central. La palabra dominio
se define como un rea de actividad en la cual el usuario aplica un programa o
funcionalidad.
Aplicar un sistema de tarea discretas contra las personas que las ejecutan
simplifican la distribucin de entrega de informacin y consecuentemente del mismo
sentido de capacidad de control del mismo empleado lo cual resulta en un deseo
inherente de procesar las tareas lo ms simple y rpidamente posible.
Los equipos giles son ms productivos que aquellos que utilizan mtodos
tradicionales a lo largo de todo el ciclo de desarrollo. Si no se aplica un sistema gil
se presenta un patrn de desarrollo tipo palo de hockey donde la mayora del
trabajo sucede en las primeras etapas y ya que anden los equipos se van haciendo
ajustes sobre el trabajo anterior. La realidad es que casi nunca suele suceder que
las piezas en equipo terminan trabajando juntos de manera coherente.
Los equipos giles que mantienen un nivel de revisin por unidades discretas
de entrega de trabajo con cada iteracin permiten realizar pruebas de rendimiento
y sistemas desde el principio. De este modo, defectos crticos como problemas de
integracin se descubren antes, la calidad general del producto es mayor y el equipo
funciona de manera ms productiva durante todo el ciclo de desarrollo.