En los últimos años los métodos para desarrollar software han tenido que sufrir grandes cambios. Este se debe a que no estaban cubriéndose todas las partes de los proyectos. Muchas veces se dejaban fuera algunos elementos que, en realidad, eran fundamentales para el progreso del proyecto. Poco a poco, los métodos fueron modificándose para optimizar los procesos de trabajo en el equipo y así mejorar los resultados para todas las partes involucradas.
El cambio ocurrió con la necesidad de encontrar alternativas a las metodologías tradicionales. Se buscaba generar unas que fueran menos rígidas que las tradicionales y sin enfocarse tanto en la documentación como en el proyecto en sí. Se buscaba desarrollar el proyecto de forma eficiente y rápida respondiendo a los cambios que este fuera necesitando a lo largo de su realización. Fue así como surgió el manifiesto que resume lo que no sabías sobre los métodos de desarrollo ágil: los principios de productividad, eficiencia y calidad.
La prioridad es satisfacer al cliente por medio de entregas tempranas que se realizan de forma continua. Esto hace que sea un desarrollo ágil. De esta forma el cliente puede dar su retroalimentación y pedir los cambios que sean necesarios.
Tanto el equipo como el proyecto en sí deben tener una estructura flexible para estar abiertos a los cambios. Esto es útil para adaptarse a las nuevas necesidades que vaya teniendo el cliente y sea, así, más competitivo.
Las entregas parciales que se realicen al cliente no deben estar separadas por amplios lapsos y deben ser funcionales. Debe evitarse entregar planificaciones, documentación o análisis. El producto entregado debe funcionar.
Debe haber una buena relación entre el cliente y el equipo para tener una guía enfocada en las metas que se desean alcanzar y seguir los procesos de trabajo eficiente.
La motivación del equipo es otra de las prioridades durante la realización del proyecto. Para tener un desarrollo ágil debe haber confianza, apoyo y un entorno adecuado. Debe cambiarse cualquier elemento que tenga un efecto negativo en el equipo de desarrolladores.
La comunicación entre los miembros del equipo debe ser prioritariamente en persona y no solo en documentos. Todos los miembros del equipo deben poder hablar entre ellos para realizar un trabajo eficiente.
El progreso se mide según el código que ya se haya generado y la parte del proyecto que ya esté en funcionamiento. No debe medirse por la fase en la que se encuentra ni según la documentación que se lleva de él.
Debe haber un desarrollo ágil sostenible en todo el proyecto. El objetivo no es terminarlo cuanto antes sino de mantener el ritmo y la máxima calidad durante todo el proceso.
La atención constante a la calidad técnica de los procesos de trabajo aporta a la agilidad del proyecto. Tanto el código como el diseño deben ser claros y limpios para avanzar a buen paso manteniendo la calidad.
Es fundamental mantener la simplicidad. Para ello deben elaborarse códigos simples, claros y flexibles pero sin dejar fuera su calidad. Esto será de utilidad para avanzar con rapidez sin dejar de tener apertura a cualquier cambio.
El equipo tiene la libertad de organizarse por sí mismo y, de esta forma, conseguir los mejores diseños, arquitecturas y requisitos. Al conocer sus responsabilidades deciden la mejor forma de organizarse y ejecutar procesos de trabajo eficientes que cumplan las metas.