Los marcos o metodologías se suelen emplear en proyectos complejos, poco definidos y muy cambiantes.
El mundo del Software (SW) es complejo, lo que supone que no podemos predecir aunque llevamos siglos tratando de hacerlo.Por ello, esos marcos ágiles se estan empleando en proyectos IT, aunque sus marcos pueden aplicarse a más organizaciones.
Las marcos ágiles combaten uno de los enemigos de un proyecto software, la incertidumbre, desmitificando el concepto de producto perfecto: se entiende que es imposible definir el producto perfecto de antemano sin que se haya ido validando y puliendo gracias al contacto con el entorno real. En un proyecto ágil no hay precio por algo fijo, ya que las necesidades se van definiendo a lo largo del mismo, y, además, necesitamos una presencia fuerte de los clientes a lo largo del proyecto.
Todos marcos ágiles se basan en el MANIFIESTO ÁGIL , cuyos principios se agrupan en 4 valores:
- Los individuos y su interacción, por encima de los procesos y las herramientas.
- El software que funciona, frente a la documentación exhaustiva.
- La colaboración con el cliente, por encima de la negociación contractual.
- La respuesta al cambio, por encima del seguimiento de un plan.
Estos valores intentan reflejar con mayor realismo los problemas a los que nos solemos enfrentar en un proyecto. En función de cómo sea el proyecto se pueden adoptar distintos tipos de metodologías o frameworks (mezclar varias es lo habitual):
- Scrum: es un marco de trabajo que nos proporciona una serie de herramientas y roles para, de una forma iterativa, poder ver el progreso y los resultados de un proyecto.
- KANBAN: se basa en una idea muy simple: que el trabajo en curso (Work In Progress, WIP) debería limitarse y sólo deberíamos empezar con algo nuevo cuando un bloque de trabajo anterior haya sido entregado o ha pasado a otra función posterior de la cadena.
- XP: se centra en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores y propiciando un buen clima de trabajo.