En Febrero de 2001, 17 personas representantes de diferentes prácticas ágiles como XP, Scrum, Crystal, FDD. Se reunieron para compartir experiencias en los montes Wasatch, en el estado de Utah. De este evento resulta el Manifiesto de ‘desarrollo de software’ ágil, mejor conocido como Manifiesto ágil o Agile Manifesto.
Estos 17 líderes del desarrollo de software ágil, se aliaron y conformaron una comunidad llamada The Agile Alliance.
El núcleo de las metodologías ágiles, se centra en ofrecer buenos productos a los clientes al operar en un entorno que no se limita a hablar de “las personas como su activo más importante” sino que realmente “se actúa” como si las personas fueran lo más importante, desechando la palabra “activo”. (Bob Martin, 2011).
En el Manifiesto Ágil se firman 4 valores y 12 principios, que comparten todas las prácticas ágiles.
VALORES
Aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.
INDIVIDUOS E INTERACCIONES SOBRE PROCESOS Y HERRAMIENTAS.
Esto no quiere decir que en la agilidad no existen procesos y herramientas, sino que se privilegia a las personas y las relaciones entre ellas.
En enfoques ágiles, son las personas quienes definen qué herramientas y procesos usarán para interactuar, y no al revés, las herramientas y procesos no están predefinidos antes de conformar un grupo de personas.
La comunicación cara a cara es más valiosa que si se realiza a través de herramientas como teléfonos, correos o chats.
SOFTWARE FUNCIONANDO SOBRE DOCUMENTACIÓN EXTENSIVA.
No somos enemigos de la documentación, siempre y cuando aporte valor. La definición de valor a nivel de documentación, quiere decir que lo que se documenta es extremadamente importante para la toma de decisiones, no por la falsa seguridad de querer asegurar la historia del proyecto “por si se requiere en un futuro”.
Se evitan los documentos que se utilizan como medios de comunicación, o como evidencia de la comunicación. En su lugar se debe buscar una comunicación más fluida y personal.
Lo más importante siempre debe ser el producto funcionando por encima de manuales y extensos documentos de requisitos.
La medida de progreso en las metodologías ágiles es el producto utilizable y no documentos o evidencias intermedias que se usan para llegar a ese producto.
COLABORACIÓN CON EL CLIENTE SOBRE NEGOCIACIÓN CONTRACTUAL.
No significa que no puedan existir contratos, pero la relación con nuestros clientes o usuarios no se debe basar en documentos sino en un contexto de confianza y colaboración.
En un entorno de confianza entre usuarios y equipo de desarrollo, no es necesario trabajar bajo contratos porque se entiende que los cambios que se soliciten se hacen por un bien común. No hay intenciones ocultas que se deban evitar bajo conversaciones por escrito.
RESPUESTA ANTE EL CAMBIO SOBRE SEGUIR UN PLAN.
Existe un mito muy popular entorno al agilismo, donde se afirma que no se planea. De hecho, la planeación para definir una hoja de ruta, alinearse como equipo e identificar riesgos que se pueden prevenir, es un ejercicio positivo que aporta valor.
El plan que se defina, debe ser lo suficientemente flexible para que se puedan incorporar cambios y replantear el resto del proyecto, a partir del feedback y las lecciones aprendidas que se adquieren en la medida que se realizan incrementos del producto.
PRINCIPIOS
A partir de los 4 valores anteriores, se generan los siguientes 12 principios del desarrollo de software ágil.
- 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.
“Todos nos sentimos privilegiados de trabajar con un grupo de personas que tenían un conjunto de valores compatibles, basados en la confianza, el respeto mutuo y colaboración”. (Bob Martin, 2011)