Empecemos con un poco de historia:
- En 1986, Ikujiro Nonaka e Hirotaka Takeuchi publicaron " The New New Product Development Game
" donde apareció por primera vez el concepto de Scrum.
- En 1995, Ken Schwaber y Jeff Sutherland presentaron el " Scrum Development Process
" en el OOPSLA’95
donde dieron a conocer las reglas por las que se iba a basar Scrum.
- En 2001, se firmó el " Manifesto for Agile Software Development
" entre los representantes de los principales marcos de trabajo.
Y ahora que ya tenemos encuadrados los principales eventos, veamos qué es realmente Agile:
El movimiento Agile surgió como respuesta al modelo en cascada que se había impuesto ampliamente en el mundo del desarrollo software.
Este modelo en cascada se caracterizaba básicamente por contratos cerrados, en los que en una fase inicial se le indicaba al cliente las características de su software y cuándo se le iba a entregar. Posteriormente, esos requisitos se pasaban al equipo de diseño, cuando éste acababa al equipo de desarrollo, cuando éste acababa al equipo de pruebas y cuando éste acababa se entregaba al cliente. ¿Problema? Al estar todo tan cerrado, no había margen a rectificaciones (salvo con penalizaciones por contrato), si finalmente se hacían el coste era demasiado elevado, los errores se encontraban en fases finales por lo que las correcciones eran pesadas, los productos eran de dudosa calidad por lo cerrado de los plazos y porque en caso de problemas la última fase (la de pruebas) era la que acababa recortándose para ajustarse a tiempo... En resumen, "
la culpa siempre es de otro
" (según el analista el cliente no sabía lo que quería, según el desarrollador el diseño era muy malo, según el probador le entregaron la aplicación el último día, según el cliente el producto recibido no funciona como él esperaba y además ya está anticuado)
Con"
The New New Product Development Game
", basado en el análisis de empresas como Fuji-Xerox, Canon, Honda, Hewlett-Packard, etc., se puso la primera piedra para solventar el problema, creando el concepto Scrum.
Con esa base, comenzaron a salir distintos frameworks Agile. Scrum creó sus reglas en 1995 en elOOPSLA. También en los 90 salieron otros comoExtreme Programming, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming... Si bien al comienzo su principal función parecía ser la de desprestigiar a los otros, en 2001 se unieron para firmar el conocido como "
Agile Manifesto
".
Este acuerdo comienza con una declaración de intenciones, dejando claro cuáles son los valores por los que se rigen todos ellos:
- 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.
Aunque no se le quita valor a los elementos de la derecha, sí que se le da el máximo valor a los elementos de la izquierda.
De estos valores se pueden desprender las siguientes conclusiones:
- Es vital mantener a un equipo motivado.
- El valor de la aplicación está en su buen funcionamiento.
- El primer objetivo debe ser la máxima satisfacción del cliente.
- Hay que ser flexible ante las evoluciones del mercado.
Una vez confirmados los valores Agile, se incluyeron los 12 principios sobre los que todos los frameworks se basarían:
- 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.
Puedes encontrar más información sobre los valores, los 12 principios, los firmantes y su historia en el
agile manifesto.