Como hemos podido ver en post anteriores (Que es Ágil), la gestión
ágil de proyectos intenta resolver los problemas de gestión que el enfoque
“Tradicional” o “En Cascada” no puede.
La gestión ágil de proyectos esta enfocada básicamente en proyectos con
alto nivel de incertidumbre, con mediano o alto nivel de complejidad, con
procesos desconocidos o que deberán ser adaptados durante se este ejecutando el
proyecto, características del producto, servicio o resultado que podrían variar
basado en los resultados obtenidos por el proyecto a mediano plazo, con
necesidad de retroalimentación temprana y con alta frecuencia para la toma de
decisiones y que necesitan flexibilidad en el alcance, tiempo y/o costos. Ahora bien, estos proyectos no existen desde
hace 6 meses, estos tipos de proyectos tienen muchos años existiendo, entonces,
quien fue el primero que pensó en esto de “Ágil”?, fue el concepto inicial de
esa persona o personas el mismo que tenemos ahora?, ha evolucionado con el tiempo?,
desde cuando esta este tema de “Ágil” en el mundo de la gestión de
proyectos?. Hablemos un poco de eso.
Todo este tema de “Ágil” y su funcionamiento esta basado en el uso
de pequeños ciclos de trabajo, de los cuales se hacen varios (varios ciclos),
estos ciclos van acumulando un resultado que crece con cada uno de ellos, este
modelo es llamado “Desarrollo en Espiral”.
El Desarrollo en Espiral fue definido por primera vez en 1986 en un
articulo publicado por el sr. Barry Boehm (un señor que le gustaba hacer muchas
cosas interesantes por sus años de juventud y que posee un Master y un PhD en
Matemáticas, para los que les gusta estudiar matemáticas a niveles de Master). Sin embargo, la NASA uso el “Desarrollo
Iterativo e Incremental” en su proyecto Mercury a principios de los 60s según
un artículo publicado por el sr. Victor R. Basili (“Iteractive and Incremental
Development: A Brief History”). En ese
mismo articulo se menciona que IBM estuvo usando estas técnicas a principios de
1957. Es decir, este asunto lo usan
desde hace un tiempo, imagínese… 1957 0_o.
Mientras estas personas de la NASA e IBM estaban tratando de
gestionar sus proyectos y crear sus productos usando un enfoque distinto al
“Tradicional”, el Project Management Institute (PMI) es formado en Estados
Unidos en el 1969, es formado también el International Project Management
Association (IPMA) en Europa para eso del 1965 (aunque ese nombre lo oficializaron
realmente en el 1979, del 1965 al 1979 tenían otro nombre), en 1953 inician en
Toyota con el uso de las pizarras de Kanban, que no es mas que un sistema de
tarjetas postradas en columnas (regularmente en una pizarra) para controlar el
trabajo en proceso, trabajo pendiente, trabajo terminado, y otros estados. Todo esto de Kanban surgió como un subsistema
de JIT (Just in Time) y lo mencionamos porque se usa bastante en el enfoque
“Ágil”.
Paralelo a todo lo que he mencionado, la industria de software
estaba en asenso y como ya les había mencionado, estos proyectos de desarrollo
de software cumplen con la gran mayoría de las características que una gestión
“En Cascada” no podía resolver, estos señores que producían software tenían un
serio problema en las manos y necesitaban resolverlo. Y Como dijo Platón “La necesidad es la madre de la invención”, comenzaron a
surgir un conjunto de “Frameworks”, Metodologías, Mejores Prácticas, Guías,
Artículos, etc. que indicaban como los diferentes grupos de ingenieros de
diferentes industrias intentaban resolver la situación. En 1986 se usa por primera vez el término
“Scrum” haciendo alusión a un “Framework” para la gestión de proyectos de
software. Esto fue en un artículo de
Harvard Business Review publicado por un conjunto de ingenieros que usaron ese
novedoso “Framework” en empresas como Canon, Honda, NEC, 3M, Xerox, HP, etc.
Ya para mediados de los 90s existían varias opciones para poder
enfrentar los proyectos que la gestión “En Cascada” no podía solucionar, Scrum
se populariza, eXtreme Programming y TDD (Test Driven Development) que son
otras formas de desarrollar productos de software atendiendo a las
características que mencionamos al principio de este post y que inician a
finales de los 90s (gracias a un señor llamado Kent Beck).
A esos del 2000 ya teníamos un conjunto importante de “Frameworks”
y metodologías que “resolvían” el tema del desarrollo de software (que eran los
mas afectados por la naturaleza de sus proyectos) y que habían surgido en la
década de los 90s, pero todos estaban
hasta cierto punto dispersos. Entonces,
en el año 2001, específicamente entre el 11 y el 13 de Febrero de ese año, en
el Lodge at Snowbird resort de Utah, 17 personas se reunieron a hablar un poco
sobre el tema. Estas personas
representaban los principales “Frameworks Agiles” hasta ese momento y producto
de esa reunión se formo la Alianza Ágil compuesta por todos ellos y también
surgió la pieza principal que rige hoy en día el Desarrollo Ágil, nos referimos
a el Manifiesto Ágil, el cual fue firmado por todos los presentes.
El Manifiesto Ágil que surgió de esa reunión con los 17
principales representantes de los diferentes movimientos “ágiles” hasta ese
momento, cuenta con cuatro valores y 12 principios y aquí esta lo que dice:
"Estamos descubriendo
formas mejores de desarrollar software tanto por nuestra propia experiencia
como ayudando a terceros. A través de este trabajo hemos aprendido a valorar:
Individuos e
interacciones sobre procesos y herramientas
Software funcionando
sobre documentación extensiva
Colaboración con el
cliente sobre negociación contractual
Respuesta ante el cambio
sobre seguir un plan
Esto es, aunque valoramos
los elementos de la derecha, valoramos más los de la izquierda."
Lo firmaron los siguientes personajes:
Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward
Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron
Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber,
Jeff Sutherlan and Dave Thomas.
Los 12 Principios del Manifiesto Ágil son los siguientes:
- Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.
- Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
- Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.
- Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.
- Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.
- El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.
- El software funcionando es la medida principal de progreso.
- Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
- La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.
- La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
- Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
- A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.
Todo lo anterior es historia, sin embargo, hoy en día siguen
vigente todos estos principios y valores y cada día son mas los equipos de
desarrollo de software que usan los “Frameworks”, metodologías y mejores
practicas que fueron impulsadas a través de este manifiesto y por estos
autores.
No obstante, no solo los proyectos de software tienen problemas en
cuanto a su gestión que el enfoque “En Cascada” no puede resolver y según hemos
visto, el manifiesto ágil aunque puede usarse para el desarrollo de productos,
esta enfocado al desarrollo de productos de software. Atendiendo a esta problemática, en el 2005,
un grupo de los autores del manifiesto ágil junto a otro pequeño grupo de
personas, redactaron lo que le llamaron “PM Declaration of Interdependence” o DOI que cuenta a su vez con seis principios que son mas específicos de la gestión
de proyectos ágiles en general (no específicos de la gestión de proyectos de
software). Los seis principios son los
siguientes (en ingles):
- We increase return on investment by making continuous flow of value our focus.
- We deliver reliable results by engaging customers in frequent interactions and shared ownership.
- We expect uncertainty and manage for it through iterations, anticipation, and adaptation.
- We unleash creativity and innovation by recognizing that individuals are the ultimate source of value, and creating an environment where they can make a difference.
- We boost performance through group accountability for results and shared responsibility for team effectiveness.
- We improve effectiveness and reliability through situationally specific strategies, processes and practices.
Los firmantes del DOI son los siguientes:
David Anderson, Sanjiv Augustine, Christopher Avery, Alistair
Cockburn, Mike Cohn, Doug DeCarlo, Donna Fitzgerald, Jim Highsmith, Ole Jepsen,
Lowell Lindstrom, Todd Little, Kent McDonald, Pollyanna Pixton, Preston Smith
and Robert Wysocki.
Bueno, hemos hablado bastante de historia, aunque se que somos
gente de acción, también se que la historia debemos conocerla. A continuación les dejo algunos enlaces de
interés relacionados con este tema.
Hasta la próxima.
Enlaces:
Alianza
Ágil (http://www.agilealliance.org)
Manifiesto Ágil (http://agilemanifesto.org)
Declaración de Interdependencia (http://pmdoi.org)
No hay comentarios:
Publicar un comentario