Professional Documents
Culture Documents
El Desarrollo de software gil, es un grupo de mtodos basados en el desarrollo iterativo e incremental. Bajo esta
filosofa, los requerimientos y soluciones evolucionan por medio de la colaboracin de equipos multifuncionales
autorganizados.
En el artculo, pmoinformatica.com "La Oficina de Proyectos de Informtica" presenta una breve historia de las
metodologas giles, remontndose a precursores como el Lean Manufacturing (Manufactura esbelta) de Toyota
(1940) y el Proceso de Desarrollo de Software Adaptativo (1970). Luego en los 90 surgieron las llamadas
"Metodologas de Desarrollo de Software de peso liviano" (Lighweight), como Crystal (1992), Scrum (1995), Feature
Driven Development (1997), Desarrollo de Software Adaptativo (1999), Extreme Programming (1999).
El Manifiesto gil fue promulgado en 2001 y desde entonces el movimiento gil a continuado evolucionando, con
exponentes como el Desarrollo basado en comportamiento (2006), el Lean Software Development (2003) y el
Kanban aplicado al desarrollo de Software (2007).
A continuacin el artculo:
1992 - Crystal
Alistair Cockbur presenta los 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.
Crystal puede ser aplicada en equipos de trabajo de entre 6 y 8 desarrolladores localizados en la misma rea,
trabajando en sistemas no crticos para la vida (es decir los fallos son tolerables).
1993 - Refactorizacin
Bill Opdyke presenta el concepto de "Refactorizacin" en su paper titulado "Creando Superclases Abstractas por
medio de la Refactorizacin".
La Refactorizacin de cdigo es una tcnica para la reestructuracin de piezas de cdigo existente, alterando su
estructura interna sin afectar su comportamiento con el exterior, que se ejecuta para mejorar los atributos no
funcionales de un software.
Se han realizado muchas investigaciones que han demostrado la efectividad de la programacin en pares. Sin
embargo, la filosofa no est reflejada en el Manifiesto gil.
1995 - Scrum
El mtodo Scrum fue ideado por Ken Schwaber y Jeff Sutherland, quienes lo presentaron en la conferencia
OOPSLA 95 (Object-Oriented Programming, Systems, Languages & Applications) en Austin Texas. Jeff Sutherland
es el Presidente (CEO) de Scrum, Inc y Ken Schawaber es el fundador de Scrum.org.
Mike Beedle fue uno de los pioneros en adoptar Scrum y colabor con su adopcin en muchas organizaciones.
El Proceso FDD fue explicado por medio de la publicacin del libro "Modelado Java a Colores con UML:
Componentes y Procesos Empresariales", cuyos coautores son Jeff De Luca y Peter Coad.
Ward Cunningham y Ron Jeffries colaboraron con Beck al escribir el libro sobre XP, a los tres se les considera los
fundadores de la Programacin Extrema.
1999 - Integracin Continua
Kent Beck defini este concepto tambin, pero fue un paper de Martin Fowler el que lo populariz.
Luego Kent Beck escribe otros libros sobre el tema como "Rediscovering Test-Driven Development".
El Lean Software Development es una adaptacin de los principios de la manufactura esbelta y de los del desarrollo
de software. Presenta 7 principios: Eliminar desperdicio, amplificar el aprendizaje, Decidir tan tarde como sea
posible, entregar lo ms rpido posible, dar poder al equipo (empowerment), construir integridad y ver la totalidad.
Como se puede ver estos principios estn alineados con la filosofa gil.
Es el Lean Software Development una metodologa gil?, o es algo distinto, muchos la consideran como el prximo
eslabon en la evolucin del desarrollo gil.
2007 - Retrospectivas
Esther Derby y Diana Larsen escriben su obra "Agile Retrospectives", estableciendo las reuniones
retrospectivas como prctica gil estndar.
El Kanban no prescribe una serie de pasos o mtodos, no existe algo como "el mtodo de Gestin de Proyectos
Kanban", en su lugar, la intencin es iniciar con los roles y procesos que se tienen actualmente y partir de all
estimular cambios continuos, incrementales y evolucionarios sobre el mtodo de trabajo.
Ries establece que si las Compaas construyen sus productos o servicios de forma iterativa, buscando lanzarlos al
cliente lo antes posible y adquirir aprendizaje a partir de all, pueden evitarse los costosos proyectos y lanzamientos
de nuevos productos.
La visibilidad y transparencia de todos los recursos, incluido el cliente, cobran fuerza entre los proyectos
actuales.
Los directores de proyectos utilizan herramientas que hacen posible la combinacin de metodologas giles
con predictivas, al mismo tiempo.
Planificacin y re-planificacin
Dos acciones que un director de proyectos dedicado al desarrollo de software, sabe muy bien. Las metodologas
giles no slo son la base de este tipo de gestin, sino que cada vez las utilizan ms los Project Manager de otros
sectores de actividad. De modo que resulta vital seguir estos tipos de mtodos, capaces de adaptarse a las
condiciones verstiles del trabajo, consiguiendo flexibilidad e inmediatez en la respuesta.
La visibilidad y transparencia de todos los recursos, incluido el cliente, cobran fuerza entre las empresas actuales.
De ah, que la comunicacin sea imprescindible en los tiempos que corren. A esto se le une la capacidad de decidir
de los propios miembros del equipo. Ahora los colaboradores se auto-gestionan, creando ellos mismos las mejores
soluciones de una manera gil y veloz. Si son los equipos los que hacen el trabajo, no deberan participar tambin
directamente de la toma de decisiones?
Si seguimos Scrumban en nuestros proyectos de software, no slo delimitaremos tres fases en los procesos: sin
comenzar, en progreso y finalizadas. Ahora, tambin podemos incluir columnas como actividades testadas,
entregadas y contexto de realizacin de la actividad, con el fin de atender a la revisin constante, propia de Scrum.
En la mayora de la ocasiones, cuando queremos gestionar el proyecto siguiendo estos dos mtodos, nos vemos
obligados a utilizar dos herramientas de gestin una gil y otra que emplee tcnicas predictivas, y dividir
nuestras actividades en dos proyectos diferentes. Sin embargo y afortunadamente, existes software
como Sinnaps que permiten integrar en una misma aplicacin online las dos metodologas: pueden responder a la
toma de decisiones rpidas y predecir automticamente el comportamiento del proyecto, atendiendo a los cambios
de ltima hora.
Sinnaps, por ejemplo, utiliza tcnicas basadas en PERT y CPM para obtener el flujo de trabajo ptimo. Todo ello,
evaluando a tiempo real el comportamiento del proyecto, en base a una planificacin marcada, gracias al Valor
Ganado o EVM (Earned Value Management). De este modo, todo el equipo podr trabajar en el proyecto desde un
slo software que utilice mtodos giles y predictivos al mismo tiempo. El resultado se ajustar a las exigencias del
cliente, mientras el Project Manager tiene controlado el impacto de cada modificacin, sin sorpresas indeseables. Al
fin y al cabo, el objetivo de cualquier metodologa es el de entregar productos de calidad con los costes y plazos
requeridos.
El Design Thinking es una prctica cada vez ms extendida en grandes organizaciones que buscan
generar ventajas competitivasmediante la diferenciacin de sus productos o de sus servicios.
Un breve resumen de las caractersticas ms destacadas de Design Thinking pueden encontrarse en este
vdeo de Anita Seidler:
En metodologas giles, se presta especial cuidado en las expectativas del usuario (por ejemplo, a travs de la
figura del Product Owner en Scrum).
El desarrollo incremental es un elemento fundamental de metodologas giles (concepto de sprints en Scrum o de
iteraciones en XP).
Gran nfasis en software que funcione en lugar de documentacin extensa. De forma anloga al paradigma
Show Dont Tell de Design Thinking, todo desarrollador gilprefiere presentar las funcionalidades construidas en
lugar de hablar sobre ellas de manera abstracta.
Sin embargo, algunos aspectos del Design Thinking podran ser incentivados en el desarrollo de software. A pesar de que la
gran mayora estn incorporados en metodologas giles (en mayor o menor medida), la realidad cotidiana demuestra que
no suelen estar suficientemente presentes.
Mucho de este trabajo es inevitable (y, en ocasiones, hasta necesario para poder cumplir con el objetivo de
experimentacin). Sin embargo, es frecuente que parte de este reproceso (por cierto, un tipo frecuente
de muda o desperdicio en Lean Management) se deba simplemente a que se ha diseado desde la
perspectiva de un ingeniero, y no de un usuario. Olvidamos el verdadero objetivo de una funcionalidad o nos
centramos en aspectos tcnicos (como la refactorizacin o la reutilizacin del cdigo, por citar algunos
ejemplos), y terminamos construyendo algo lo suficientemente bueno para un ingeniero, pero sin considerar
la experiencia del usuario.
La relacin entre desarrolladores de software y no desarrolladores de software resulta en ocasiones muy difcil
de llevar. En gran medida, debido a que los primeros se ven obligados a dedicar gran cantidad de esfuerzo
para cumplir con expectativas no realistas de estos ltimos (por ejemplo, fechas lmite inalcanzables o
requisitos repletos de ingenuidad).
Por otro lado, el Design Thinking persigue realizar pruebas de productos/servicios lo antes posible y en un
entorno lo ms realista posible. Esto repercute en una disminucin del time-to-market, un aspecto clave
empleado por las principales empresas actuales para generar ventajas competitivas.
Aplicar tcnicas de integracin continua, as como otras tcnicas como Perpetual Beta, permite a los equipos
de desarrollo mantenerse ms cercanos a la realidad de los proyectos y su razn de ser. Cuanto ms
cercano est el equipo de desarrollo a los usuarios, a sus expectativas y a sus necesidades, ms adecuada
ser la aplicacin a su verdadero uso en explotacin.