Las Metodologías Ágiles surgen como reacción a los problemas de las Metodologías de Desarrollo clásicos como el Unified Software Development Process: su burocracia y rigidez. La agilidad busca reducir los desvíos del software y llegar más rápido al mercado.

Los frameworks ágiles son:

  • Adaptativos al proyecto, equipo, etc.
  • Orientados a las personas.
  • Enfocados en la comunicación constante con el cliente.
  • Livianos (exigen poca documentación).

En 2001 se firmó el Manifiesto Ágil como consecuencia de propuestas ágiles ya existentes. Los 4 valores definidos son:

  1. Individuos e interacciones sobre procesos y herramientas.
  2. Software funcionando sobre documentación extensiva.
  3. Colaboración con el cliente sobre negociación contractual.
  4. Respuesta ante el cambio sobre seguir un plan.

El agile modeling es un conjunto de prácticas complementarias a otros frameworks ágiles que sirven para documentar y modelar. Por ejemplo, sirven para usar UML en la agilidad.

Algunas prácticas ágiles fueron creadas hace más de 20 años, así que es razonable que hayan nuevas propuestas. El post-agilismo es un movimiento que propone ideas nuevas, algunas construidas sobre la agilidad y otras escépticas de las propuestas ágiles.

Ejemplos de frameworks: Scrum (1995), XP (1996), Crystal (1998), Feature Driven Development (1997), DSDM (1994), ASD (1999).

A modo de ejemplo, describimos algunas propuestas de XP.

XP

eXtreme Programming es un framework ágil propuesto por Kent Beck y pensado para equipos pequeños en dominios muy dinámicos. Sus valores son la simplicidad, comunicación, retroalimentación, coraje, y respeto.

Actividades básicas:

  1. Programar.
  2. Probar.
  3. Escuchar.
  4. Diseñar.

Prácticas centrales:

  1. El juego de la planificación.
  2. Entregas.
  3. Metáfora (una historia fácil de entender sobre cómo debería funcionar el sistema).
  4. Diseño simple.
  5. Pruebas.
  6. Refactorización (constantemente reestructurar y simplificar el código).
  7. Pair programming.
  8. Estándares de codificación (código por sobre diagramas).
  9. Integración continua.
  10. Propiedad colectiva.
  11. Cliente en el sitio.

El proceso de XP tiene la siguiente forma:

Una spike es una pequeña historia para investigar una pregunta y resolver un problema específico. Por ejemplo, prototipar un script de migración para validar si es posible o no migrar el sistema a una base de datos diferente.