Manifiesto Agile
Agile es un término acuñado en el Manifiesto por el desarrollo ágil de software, declaración formulada en 2001 por un grupo de profesionales del sector. Su intención era poner en común sus experiencias respecto a las formas mejores de trabajar y extraer conclusiones válidas que pudieran resultar de ayuda a terceros. Supuso una manera muy explícita de marcar distancias con las técnicas tradicionales de gestión de proyectos (metodología en cascada o Waterfall), por su falta de adecuación a los nuevos modelos de negocio, nacidos al amparo de la era digital.
Fue llevado a cabo por un grupo de 17 personas con un perfil técnico, algunos de los cuales ya habían formulado propuestas propias:
- Kent Beck, Ward Cunningham y Ron Jeffries (fundadores de la metodología de desarrollo de la ingeniería de software Programación Extrema XP, 1999)
- Ken Schwaber y Jeff Sutherland (creadores de Scrum, presentado en OOPSLA 1995)
Valores del Manifiesto Ágil
1.- Individuos e interacciones sobre procesos y herramientas
De todos los valores Agile, éste es el más importante. Considerar a las personas como el activo más importante que tiene cualquier organización, en cualquier nivel de su estructura, y sin importar el tipo de proyecto en el que estén trabajando. Las personas son las que aportan creatividad y capacidad de innovación. Las empresas deben entender y valorar la capacidad de autoorganizarse de sus empleados. Ello no implica que se prescinda de los procesos establecidos y se instaure la anarquía a nivel interno. Los procedimientos y las herramientas pero como elemento de apoyo para que las personas puedan lograr sus objetivos.
2.- Software funcionando sobre documentación extensiva
No se pone en cuestión que la documentación sea un elemento fundamental en cualquier proyecto. Sin embargo, se establece que lo que realmente prima es que las cosas funcionen. Y que se consiga hacerlo de un modo sencillo e intuitivo. Las nuevas tecnologías son un medio para conseguir productos más funcionales.
3.- Colaboración con el cliente sobre negociación contractual
En un mundo en constante evolución, la comunicación entre las partes es un elemento clave para que la ejecución de los proyectos conduzca al resultado esperado. Es la manera más efectiva de evitar la obsolescencia. Más allá de lo establecido en un contrato, lo que realmente permite conseguir que el producto final se corresponda con las necesidades del mercado en el momento de su lanzamiento es recabar el feedback continuo del cliente.
4.- Respuesta ante el cambio sobre seguir un plan
La capacidad de evolución y adaptación al mercado está por encima de cualquier plan establecido. Ser capaz de activar una respuesta rápida ante cualquier imprevisto genera una ventaja competitiva incuestionable que, a la postre, marca la diferencia. Planificar está muy (y es necesario hacerlo), pero los planes no sirven de nada si no se es capaz de reaccionar ante una circunstancia sobrevenida. El cambio se ha de entender en positivo, como una oportunidad de mejora.
Reflexión final
Que la balanza se decante por la parte de la izquierda no implica que tengamos que renunciar a la parte de la derecha. Ser Agile no significa renunciar a las herramientas, pues son elementos necesarios que facilitan nuestro trabajo, pero teniendo claro que son sólo eso. Ni que vayamos a dejar de documentar, pero sí que esta documentación sea la estrictamente necesaria. Tampoco vamos a renunciar a los contratos, pero debemos saber que los contratos ágiles deben ser más abiertos al cambio y estar más basados en la colaboración. En último término, huelga emplearse a fondo en elaborar un plan sabiendo que vamos a tener que gestionar el cambio para adaptarnos a nuevas necesidades.
Principios del Manifiesto Agile
Principio 1: Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continuada de software con valor
No va a resultar fácil conseguir la satisfacción del cliente sin adaptarnos a sus requerimientos cambiantes. La solución es la de realizar entregas tempranas y continuas de producto que funcione.
Principio 2: Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
Estar abiertos al cambio tiene que ser un modo de trabajar y hasta un modo de vida. No existe nada que no cambie continuamente y es imprescindible para sobrevivir acoger el cambio en positivo.
Principio 3: Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia por periodos de tiempo lo más corto posibles.
Necesitamos el feedback continuo por parte del cliente para saber si vamos en la buena dirección o no. El modo mejor de obtenerlo es entregando muchas veces y muy a menudo versiones de producto en funcionamiento de valor incremental.
Principio 4: Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto
Cuando nos manejamos en entorno cambiantes y modelos adaptativos, el equipo de trabajo tiene que actuar bajo la premisa de coordinación total y mantener hilo directo con el cliente a lo largo de todo el proceso.
Principio 5: 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.
Una vez conformado el equipo adecuado -multifuncional- para llevar a cabo el proceso, la confianza debe ser plena. La gente debe ser respetada y valorada para que se organice por sí misma sin necesidad de recibir órdenes. La responsabilidad genera el compromiso y la motivación que hacen falta para que las cosas salgan.
Principio 6: 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
Ningún canal de comunicación es mejor que una conversación cara a cara. Si las circunstancias lo permiten, será la manera de comunicarse entre los miembros del equipo. Y si no es posible, echaremos mano de la tecnología para reducir al mínimo la falta comunicación cara a cara.
Principio 7: El software funcionando es la principal medida progreso
Sólo existen dos formas de etiquetar un producto: completo (hecho) o incompleto (no hecho). Mantener esta idea en la cabeza, nos permitirá trabajar de modo iterativo e incremental, eliminando todo aquello que no aporte valor para conseguir producto acabado en funcionamiento.
Principio 8: Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
La cadencia marcada se ha de mantener en el tiempo. De nada vale echar horas si no se consigue el objetivo de alcanzar el producto.
Principio 9: La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad
El diseño en los proyectos ágiles se lleva a cabo en cada sprint y para cada elemento del Backlog de Producto. Buscar el producto mínimamente viable no implica que no se busque la excelencia técnica y el buen diseño.
Principio 10: La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
Si un proyecto aspira a ser Ágil debe gestionarse de un modo sencillo y entregarse de manera simple. Es la mejor manera de relacionarse con el cliente.
Principio 11: Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
Existe una relación directa entre felicidad y productividad. Cuando la gente percibe aprecio y confianza se siente en la responsabilidad de sacar lo mejor que lleva dentro. En este sentido, es fundamental que todos los miembros de un equipo sientan que todo es responsabilidad de todos y no actúen de manera aislada.
Principio 12: A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.
Siempre todo es mejorable. La conciencia autocrítica y la humildad nos permiten transitar la senda de la mejora continua. Este análisis se debe emplear tanto en el producto como en los procesos que conducen a su elaboración. Debemos dotarnos de reuniones para llevar a cabo estos análisis.