Hace poco me llamó la atención una metodología de trabajo denominada metodología ágil de desarrollo. ¿Cómo es eso de «ágil»? ¿Acaso las demás no lo son?
Después de informarme y leer un poco al respecto, aún más me llamó la atención y por eso ahora os cuento sólo un poquito sobre qué es esto.
Se trata de una metodología para desarrollar software, aunque bien podría ser aplicada a otras ramas profesionales. Nació como resultado de una reunión de 17 desarrolladores de software en 2001 para discutir sobre métodos de desarrollo ligeros o rápidos. A raiz de eso, se ha ido progresando y madurando esta idea y metodología.
Se trata de primar algunos aspectos antes que otros teniendo como algunos principios los siguientes:
- La satisfacción del cliente por la creación rápida de software usable. Con lo que el cliente podría tener versiones funcionales rápidamente, sin esperar largos procesos de desarrollo.
- La aceptación de modificaciones en los requerimientos es permitida y bienvenida incluso cuando el desarrollo está empezado. Con esto, se intenta involucrar al cliente y conseguir el software lo más a su gusto. Esto puede parecer una pérdida de tiempo ya que puede pensarse que el cliente variará los requerimientos enormemente, pero puede ser todo lo contrario ya que se consigue que al final del proceso de desarrollo el resultado sea el esperado por el cliente, con su consiguiente satisfacción.
- Versiones de software rápida. Se prima el obtener versiones rápidas, quizás con pocos cambios, pero lo más importante es que salgan a la luz. Con esto, las programaciones se estiman en semanas, no meses. Así, aunque no pueda estimarse a largo plazo, a corto plazo las estimaciones pueden ser muy acertadas y fiables y encaja con el punto anterior de acercar al cliente al desarrollo.
- Se prima el desarrollo del software como el principal punto de todo proyecto y por ello, se hace hincapié en tener pequeños grupos de desarrollo que puedan mantener el conocimiento (know-how) en el grupo. Incluso tener encuentros cara a cara muy frecuentemente entre miembros del grupo si están cerca (lo ideal) o incluso con el cliente (vuelve a estar relacionado con todo lo anterior).
- Se intenta motivar a los miembros del grupo de desarrollo involucrándolos activamente en los proyectos ya que de ellos depende en buena medida lograr el objetivo.
- Se pone mucha atención a la excelencia técnica, buen desarrollo y simplicidad del mismo (ya se sabe, grano a grano se hace una montaña).
- Grupos con capacidad de auto organización y capaces de adaptarse a las circunstancias.
El método ágil es opuesto a métodos formales que priman la planificación a largo plazo, la documentación previa estricta y la invariabilidad del proyecto una vez empezado el desarrollo. Con los métodos formales se puede tener una planificación mejor en tiempo sobre recursos personales y económicos. Mientras tanto, por lo contrario, el método ágil permite tener una planificación mejor a corto plazo y, sobre todo, una mayor flexibilidad a la hora de desarrollar un proyecto para adaptarse a las necesidades del cliente incluso durante el desarrollo.
¿Qué es mejor, el método ágil o un método formal? Supongo que habrá gustos para todo. Personalmente y casi sin saberlo he trabajado muchas veces de forma similar a como se describe en el método ágil y puedo decir que los resultados han sido buenos, incluso con proyectos de gran envergadura. Supongo, que como todo, será cuestión de gustos y puntos de vista.
Hasta pronto!
Más información | agilemanifesto.org