Agile

Imagen de http://www.harringtonstarr.com/agile-methodology-best-option-software-delivery/

Todo el mundo habla de Agile, scrum, Kanban, XP o de ser más agile. Pero, ¿qué es agile?

Agile comenzó cuando 17 personas se juntaron en Utah en el 2001 y crearon el manifiesto agile.

Personalmente, agile es una filosofía y una forma de ver las cosas. Solo hay que comprobar que el manifiesto contiene también 12 principios. Esos principios me gustan más que el manifiesto.
Por ejemplo, el primer principio que es muy bueno y dice: “nuestra prioridad número uno es satisfacer al cliente con frecuentes entregas de software que aporta valor”.

Además agile es una forma de solucionar varios problemas que tenemos en el desarrollo de software. Los principales problemas que intenta solucionar son los siguientes:

Los requisitos cambian

Porque el cliente no tiene claro lo que quiere, porque no hemos entendido lo que quiere, porque ha surgido una nueva funcionalidad que puede ayudar al cliente más que los requisitos actuales, porque ha surgido una nueva funcionalidad que es necesarias para poder dar valor a las demás. Seguramente que puedas sacar más porqués por tu cuenta, pero lo que está claro es que cambian.

El coste se va de las manos

Y el coste se va porque no somos buenos estimando proyectos, porque nos confundimos en el desarrollo, diseño o toma de requisitos, porque añadimos mayor complejidad a nuestros diseños o código lo que hace que vayamos avanzando más lentamente, porque nos encontramos problemas que no conocíamos o que conocíamos pero que no hicimos nada al espectro o que aún conociéndolos y haciendo algo al respecto nos hizo perder mucho más tiempo de lo esperado, porque dejo la empresa gente que trabajaba en el proyecto, porque gente del proyecto es movida a otro proyecto con mayor importancia para la empresa.

El valor obtenido es muy pequeño

Este problema es una combinación de otros problemas. Como por ejemplo, de los dos primeros ya que si los requisitos cambian pero no hacemos nada al respecto el cliente obtendrá menos valor y además si el coste aumenta mucho quizás el valor que le hemos dado no compense.

En resumen, agile es una filosofía que ayuda a resolver los principales problemas que tenemos en el desarrollo de software.