LECCIÓN 3: El Manifiesto Ágil
Su objetivo fue establecer los valores y principios que permitirían a los equipos desarrollar software rápidamente y respondiendo a los cambios que puedan surgir a lo largo del proyecto.
El 12 de febrero de 2001, 17 destacados y conocidos profesionales de la ingeniería del software escribían en Utah el Manifiesto Ágil. Entre ellos estaban los creadores de las metodologías ágiles más usadas en la actualidad: XP, Scrum, DSDM, Crystal, etc. Su objetivo fue establecer los valores y principios que permitirían a los equipos desarrollar software rápidamente y respondiendo a los cambios que puedan surgir a lo largo del proyecto.
CURIOSIDADES La primera metodología ágil, creada en el Reino Unido en 1994, es DSDM (Dynamic Systems Development Method), basada en el ciclo de vida iterativo e incremental.
Se pretendía ofrecer una alternativa a los procesos de desarrollo de software tradicionales, caracterizados por ser rígidos y dirigidos por la documentación que se genera en cada una de las actividades desarrolladas. Y reflejar en un documento las ideas como las que vimos en las lecciones 1 y 2 de CIOÁGIL.
Tras esta reunión se creó La Alianza Ágil, una organización sin ánimo de lucro, dedicada a promover los conceptos relacionados con el desarrollo ágil de software y ayudar a las organizaciones para que adopten dichos conceptos. El punto de partida fue el Manifiesto Ágil, documento que resume la filosofía “ágil”.
Los Valores del Manifiesto Ágil
El Manifiesto Ágil establece un conjunto de valores y principios comunes para todas las metodologías ágiles. Se basa en cuatro valores *:
- “Valorar a los individuos y las interacciones del equipo de desarrollo sobre el proceso y las herramientas.” Se tendrán en cuenta las buenas prácticas de desarrollo y gestión de los participantes del proyecto (siempre dentro del marco de la metodología elegida). Esto facilita el trabajo en equipo y disminuir los impedimentos para que realicen su trabajo. Asimismo compromete al equipo de desarrollo y a los individuos que lo componen.
- “Desarrollar software que funciona más que conseguir una documentación exhaustiva”. No es necesario producir documentos a menos que sean necesarios de forma inmediata para tomar una decisión importante. Los documentos deben ser cortos y centrarse en lo fundamental. La variación de la cantidad y tipo de documentación puede ser amplia dependiendo el tipo de cliente o de proyecto. El problema no es la documentación sino su utilidad.
- “La colaboración con el cliente más que la negociación de un contrato”. Es necesaria una interacción constante entre el cliente y el equipo de desarrollo. De esta colaboración depende el éxito del proyecto. Este es uno de los puntos más complicados de llevar a cabo, debido a que muchas veces el cliente no está disponible. En ese caso desde dentro de la empresa existirá una persona que represente al cliente, haciendo de interlocutor y participando en las reuniones del equipo.
- “Responder a los cambios más que seguir estrictamente un plan”. Pasamos de la anticipación y la planificación estricta sin poder volver hacia atrás a la adaptación. La flexibilidad no es total, pero existen muchos puntos (todos ellos controlados) donde se pueden adaptar las actividades.
Los 12 Principios del Manifiesto Ágil
El término “metodología ágil” se define a partir de la redacción del Manifiesto Ágil en 2001.
Además de los anteriores valores, existen doce Principios* que impulsan y guían al desarrollo ágil. Estos principios son características que diferencian un proceso ágil de uno tradicional. Los Principios Ágiles son los siguientes:
- La prioridad es satisfacer al cliente mediante entregas tempranas y continuas de software que le aporten valor.
- Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una ventaja competitiva.
- Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas.
- Cliente y los desarrolladores deben trabajar juntos a lo largo del proyecto.
- Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.
- El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo.
- El software que funciona es la medida fundamental de progreso.
- Los procesos ágiles promueven un desarrollo sostenible. Los promotores, desarrolladores y usuarios deberían ser capaces de mantener una paz constante.
- La atención continua a la calidad técnica y al buen diseño mejora la agilidad.
- La simplicidad es esencial.
- Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí mismos.
- En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y según esto ajusta su comportamiento.
Lo que no dice el Manifiesto Ágil
CURIOSIDADES Si repasamos la versión original del Manifiesto Ágil, éste utiliza la palabra: “over” que significa “por encima de, sobre”, para expresar las preferencias del Manifiesto (p.e “Individuals and interactions over processes and tools” o “Working software over comprehensive documentation”). De hecho, los autores recalcan que “aunque valoramos los elementos de la derecha (de la palabra over), valoramos más los de la izquierda”. Por eso usaron la palabra “por encima de” y no “en vez de”.
Desde que se publicara el Manifiesto Ágil, se han sucedido malas interpretaciones que han llevado a crear problemas en el software que desarrollaban empresas con metodologías ágiles. A continuación se enumerarán algunas desviaciones típicas o conclusiones erróneas que se pueden obtener de la lectura del manifiesto o los principios ágiles:
“Desarrollar software que funciona más que conseguir una documentación exhaustiva”. La confusión viene de que en ocasiones se malinterpreta y se piensa que las metodologías ágiles dicen que no hay que documentar. Lo cual no es cierto. NO ES que no se deba documentar.
Lo importante es que la documentación esté al servicio del desarrollador, del equipo y, en definitiva, del proyecto. Lo que el valor ágil nos dice es que evitaremos crear documentación inutil.
“Responder a los cambios más que seguir estrictamente un plan” NO ES improvisar. Esta malinterpretación ha llevado a generar el falso mito de que las metodologías ágiles no planifican. Según las encuesta de Versionone es la mayor preocupación de las empresas a la hora de adoptar metodologías ágiles. La planificación ayuda a anticipar decisiones y gestionar los riesgos. De hecho, en las principales metodologías ágiles se realizan reuniones de planificación.
“La colaboración con el cliente” NO ES que el cliente debe hacer todo el trabajo y será el Jefe de Proyecto. El cliente entra a formar parte del equipo de desarrollo, pero tiene un rol propio dentro del mismo y no debe sobrepasar las funciones o competencias de dicho rol.
Las metodologías ágiles son una alternativa interesante para superar las debilidades de las metodologías tradicionales. Pero debemos tener claro que no son en sí mismas la solución a todos los problemas que presentan la gestión y el desarrollo de proyectos software.
Copyright © 2012 Kybele Consulting, Todos los derechos reservados.