El desarrollo de metodologías ágiles evolucionó a partir de las experiencias personales y colectiva de los consultores y líderes de opinión de la comunidad del software. Si bien la mayoría de las prácticas ágiles individuales tienen un atractivo intuitivo, ya que se basan en principios de gestión con aceptación general, ciertamente carecían de fundamentos teóricos o de apoyo empírico para sus beneficios declarados, cuando se concibieron inicialmente. Por lo que, existía una necesidad urgente de perspectivas teóricas que arrojaran luz sobre cómo estas prácticas dispares y sus interacciones podían producir resultados valiosos. Es así como el comprender teóricamente la distinción entre métodos ágiles y sus contrapartes tradicionales fue una preocupación que pidió atención a la investigación.

Las metodologías ágiles son una nueva serie de metodologías que pretenden superar las limitaciones de los SDM tradicionales basados en planes. Su uso en el desarrollo de software se ha extendido en los últimos años, toda vez que permite contrarrestar los peligros de los métodos tradicionales de planificación inicial que a menudo conducen a patologías de desarrollo posteriores.

El enfoque ágil para el desarrollo de software busca distribuir de forma permanente sistemas de software en funcionamiento diseñados con iteraciones rápidas.

Sin embargo, la frase «metodología ágil» es engañosa porque implica que el enfoque ágil es la única forma de abordar el desarrollo de software. La metodología ágil no hace referencia a una serie de indicaciones sobre qué hacer exactamente durante el desarrollo de software. Se trata más bien de una forma de pensar en la colaboración y los flujos de trabajo, y define un conjunto de valores que guían nuestras decisiones con respecto a lo que hacemos y a la manera en que lo hacemos.

En concreto, las metodologías ágiles de desarrollo de software buscan proporcionar en poco tiempo pequeñas piezas de software en funcionamiento para aumentar la satisfacción del cliente. Estas metodologías utilizan enfoques flexibles y el trabajo en equipo para ofrecer mejoras constantes. Por lo general, el desarrollo ágil de software implica que pequeños equipos auto organizados de desarrolladores y representantes empresariales se reúnan regularmente en persona durante el ciclo de vida del desarrollo de software. La metodología ágil favorece un enfoque sencillo de la documentación de software y acepta los cambios que puedan surgir en las diferentes etapas del ciclo de vida, en lugar de resistirse a ellos.

Ventajas

  • Apropiado para entornos volátiles 
  • Estar preparados para el cambio, significa reducir su coste.
  • Planificación más transparente para nuestros clientes, conocen las fechas de entrega de funcionalidades. Vital para su negocio
  • Permitirá definir en cada iteración cuales son los objetivos de la siguiente
  • Permite tener realimentación de los usuarios muy útil.
  • La presión está a lo largo de todo el proyecto y no en una entrega final

Desventajas

  • Delimitar el alcance del proyecto con nuestro cliente