Está en la página 1de 7

Antecedentes

Una breve historia de las metodologas giles

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:

La Historia de las Metodologas giles


El desarrollo gil es un marco conceptual que reconoce las distintas interacciones y cambios que ocurren en todo
desarrollo de software. Evolucion a partir de varios mtodos. El Trmino "gil" fue definido por el "Manifiesto gil"
en 2001. A continuacin presentamos una lnea de tiempo con los principales eventos en la historia del movimiento
gil:

1930 - Ciclo PDCA


Walter Shewhart propone el ciclo de "Planear", "Hacer", "Estudiar" y "Actuar", un concepto que luego fue difundido
por Deming.

1940 - Kanban, Sistemas de Produccin de Toyota


y el Lean Manufacturing (Manufactura esbelta)
Taiichi Ohno inventa el mtodo Kanban en Toyota. El Lean Manufacturing es una fuente de inspiracin y precursor
del movimiento gil.

1974 - El Proceso de Desarrollo de Software


Adaptativo
Un Paper de E.A. Edmonds presenta el concepto de "Proceso de Desarrollo de Software Adaptativo" en 1974.
Asimismo, tambin durante los 70, Tom Gild publica conceptos sobre la Gestin de Proyectos Evolutiva (EVO).

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.

1995 - Programacin en Pares (Pair Programming)


Es un concepto que fue simultneamente ideado, pero de forma independiente por varios autores. Por una parte Jim
Coplien public un Paper , que defini la "Programacin en Pares" como un patrn de desarrollo de software. Por
otra parte Larry Constantine defini los "duos dinmicos" en su libro "Constantine on Peopleware" del mismo ao.

Este concepto se convirti en una parte integral de la Programacin Extrema.

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.

Como se sabe, Scrum es prcticamente el estndar de facto para el desarrollo gil.

1997 - Desarrollo guiado por funcionalidades


/ Feature Driven Development (FDD)
El mtodo FDD fue inicialmente ideado por Jeff De Luca. En l se definen mejores prcticas como son: Modelado de
objetos de dominio, Desarrollo por funcionalidades, Propiedad individual de las clases (Cdigo), Equipos de trabajo
por funcionalidad, Inspecciones, Gestin de Configuracin, Compilaciones regulares (peridicas) y visibilidad del
avance y resultados.

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.

1999 Desarrollo de Software Adaptativo


Jim Highsmith formaliz el concepto de Desarrollo de Software Adaptativo y pblico su libro del mismo nombre. La
idea creci y evolucion hacia las metodologas de Desarrollo Rpido de Aplicaciones (RAD). La metodologa
propone un ciclo de vida de 3 fases: Especulacin, Colaboracin y Aprendizaje.

1999 - Programacin Extrema / Extreme


Programming (XP)
Mientras trabajaba en Chrysler, Kent Beck desarrolla el concepto de Programacin Extrema, publicando el mtodo
en 1999 en un libro titulado "Extreme Programming Explained". Como parte de la Programacin Extrema, tambin
formul los conceptos de Historias de Usuario y Planificacin de Releases. La metodologa especifica buenas
prcticas para la planificacin, gestin, diseo, codificacin y pruebas.

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.

2001 - El Manifiesto gil


Bob Martin, rene a otros 16 lderes del movimiento gil, para escribir el "Manifiesto gil", que engloba las
metodologas que hasta ese momento se les conoca como "Metodologas de Desarrollo de Software de peso
liviano".

2002 - Desarrollo guiado por pruebas / Test Driven


Development (TDD)
El concepto se origin el enfoque de "Probar primero" asociado a la Programacin Extrema (XP). Luego tomo mayor
con la publicacin del libro "Desarrollo guiado por pruebas: Por ejemplos" (Test Driven Development: By Example),
escrito por Kent Beck.

Luego Kent Beck escribe otros libros sobre el tema como "Rediscovering Test-Driven Development".

2002 - Planning Poker


Tambin en 2002 nace la tcnica de Planning Poker, ideada por James Greening y escrita en un Paper.

2003 - Desarrollo de Software Esbelto / Lean


Software Development
Mary y Tom Poppendieck presentan su obra "Lean Software 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.

2006 - Desarrollo guiado por comportamiento /


Behavior Driven Development
Dan North presenta su obra "Behavior Driven Development", un mtodo que combina las principales ideas y tcnicas
del TDD con las ideas del Diseo guiado por dominio y el Anlisis y Diseo orientado a objetivos. El mtodo se
enfoca en proporcionar herramientas y procesos colaborativos entre desarrolladores de software y analistas
funcionales, buscando acercar a los tcnicos de software con las necesidades que impulsan al rea de negocio.

2007 - Retrospectivas
Esther Derby y Diana Larsen escriben su obra "Agile Retrospectives", estableciendo las reuniones
retrospectivas como prctica gil estndar.

2007 - Kanban para el Desarrollo de Software


David Anderson presenta su obra "Kanban", adaptando el Kanban para el desarrollo de software. El mtodo se
enfoca en la entrega "justo a tiempo" y en no sobrecargar a los desarrolladores de software, tal como su precursor el
Kanban para manufactura perfeccionado por Toyota. Bajo este enfoque, todas las tareas necesarias para entregar
una funcionalidad al cliente se le muestran a los desarrolladores, quienes toman la tarea a realizar de una cola, de
forma similar al backlog definido en Scrum.

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.

2009 - Manifiesto de la Artesana de Software


(Software Craftmanship)
Los asistentes a la primera conferencia internacional de Artesana de Software escriben sus conclusiones y
promulgan el "Manifiesto de Artesana de Software". La artesana de software no solamente se trata de prcticas de
programacin sino tambin de formar a la siguiente generacin.

2009 - Lean Startup


Eric Ries escribe su obra "Lean Startup". Es una metodologa mayormente terica para el desarrollo de empresas y
productos. Basado en las experiencias de Ries trabajando con varios emprendimientos (startups), el mtodo se basa
en que los ciclos de desarrollo de productos pueden reducirse en duracin por medio de ciclos continuos de
experimentaciones, iteraciones y lanzamientos de producto.

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.

Tendencias en metodologas giles para 2017


Este artculo es una contribucin de Sinnaps, gestor de proyectos con capacidad de planificar de forma automtica
basado en algoritmos de lgica PERT y CPM para optimizar la gestin. Consulta ms informacin sobre Sinnaps.

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?

Aplica la tcnica de Scrumban


Las tcnicas ms utilizadas dentro de las metodologas giles son Scrum y Kanban. Ambas permiten trabajar por
bloques, pequeos ciclos cortos en pequea escala. Es precisamente la mezcla entre stos dos mtodos, lo que se
empieza a desarrollar en las empresas que apuestan por innovar y mejorar la gestin de sus proyectos. Estamos
hablando del denominado Scrumban. Mientas que el flujo de trabajo es el propio de Kanban fases relacionadas
entre s, incluimos prcticas de Scrum, como reuniones diarias de 15 minutos y anlisis retrospectivos para la
mejora continua.

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.

Los mtodos giles se combinan con los


predictivos
La tendencia para el prximo 2017 se enfoca al aprovechamiento de lo mejor de varios mtodos de trabajo. Como
Scrumban, tambin podemos obtener lo mejor del uso de tcnicas giles y predictivas al mismo tiempo. Lo gil
gestiona muy bien la duda, el riesgo y la respuesta rpida. Mientras que las metodologas predictivas gestionan de
maravilla la incertidumbre en los proyectos.

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.

Design Thinking y Desarrollo Agile


32

Fundamentalmente, el Design Thinking es una metodologa para el desarrollo de productos o la resolucin de


problemas. Su xito radica en que fomenta la creatividad para implementar ideas innovadoras a travs de la
observacin y la experimentacin, mediante actividades dinmicas y un enfoque constructivista.

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:

Algunos aspectos claves de esta metodologa son los siguientes:

Centrado en el usuario: se parte de la observacin (diferenciando especialmente entre lo que dicen


los consumidores/usuarios y lo que realmente hacen), se trabaja sobre los insights y se presta mucha
importancia a la experiencia del consumidor o del usuario.
Basado en equipos multidisciplinares: el trabajo colaborativo de varias personas con diferentes
perfiles profesionales permite abordar las perspectivas ms relevantes del problema a resolver (o
producto a desarrollar).
Gran nfasis en pensar fuera de la caja (think out of the box): se busca fomentar la creatividad
mediante libertad y flexibilidad, generando diferentes aproximaciones de solucin (muchas de ellas
radicalmente diferentes entre s).
Fundamentado en prototipados: se persigue una experimentacin iterativa como mtodo de trabajo,
con el que realizar ensayos de la solucin y validar las propuestas a medida que se construyen.
Centrado en resultados: a travs del lema Show Dont Tell, se procura que el prototipado sea
prctico y tangible, no terico; dicho de otro modo, la experimentacin debe ser lo ms cercana
posible a la realidad para validar as los prototipos.

Design Thinking y Agile


El enfoque Agile presenta en realidad muchas similitudes al Design Thinking:

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.

Dar mayor relevancia al usuario y su experiencia


Una gestin adecuada de las expectativas de los interesados es uno de los principales retos de todo proyecto
de desarrollo de software (en realidad, de cualquier tipo de proyecto). A pesar de las mejores intenciones del
equipo de trabajo, no es extrao que haya que realizar esfuerzos adicionales para reconstruir funcionalidades
o modificar diseos.

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.

Saber trabajar mejor en equipos multidisciplinares


Diseadores grficos, profesionales de marketing, comerciales, directivos, todos ellos personas que en
algn momento se implican en los proyectos, consultan, solicitan informacin o (peor an, en opinin de
muchos desarrolladores de software) participan aportando o tomando decisiones.

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).

A pesar de lo anteriormente comentado, resulta fundamental una adecuada colaboracin y un verdadero


trabajo en equipo para poder construir productos de gran valor. Y para ello, es fundamental que los
desarrolladores de software sean capaces de interactuar (sin fricciones y eficazmente) con el resto de
participantes de un equipo de trabajo multidisciplinar. En definitiva, una mayor destreza con la inteligencia
emocional y las soft skills.
Potenciar la integracin continua, y no nicamente el desarrollo
iterativo
El desarrollo gil promueve un desarrollo iterativo e incremental, desde un enfoque explorativo. Sin embargo,
en la prctica no siempre conlleva una integracin continua. De hecho, el estudio desarrollado por
VersionOne indica que aproximadamente la mitad de equipos de desarrollo gil no aplica esta tcnica.

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.