Informática → Metodologías ágiles
Comments Off
Seguidamente se describen brevemente algunas de las metodologías ágiles:
DSDM
Es la metodología más veterana de las auto-denominadas ágiles. Surgió en 1994 de los trabajos de Jennifer Stapleton, la actual directora del DSDM Consortium.
DSDM es la metodología ágil más próxima a los métodos formales; de hecho la implantación de un modelo DSDM en una organización le permite alcanzar lo que CMM consideraría un nivel 2 de madurez. Sin embargo los aspectos que DSDM reprocha a CMM son:
- Aunque es cierto que se ha desarrollado con éxito en algunas organizaciones, lo que funciona bien en unos entornos no tiene por qué servir para todos.
- CMM no le da al diseño la importancia que debería tener.
- CMM plantea un foco excesivo en los procesos, olvidando la importancia que en nuestra industria tiene el talento de las personas.
- El tener procesos claramente definidos no es sinónimo de tener buenos procesos.
Extreme Programming (XP)
Ó programación extrema. Es la metodología ágil más popular, y posiblemente también la más transgresora de la ortodoxia basada en procesos. Su creador fue Kent Beck, impulsor del Manifiesto Ágil.
Extreme Programming (XP) se yergue sobre la suposición de que es posible obtener software de gran calidad a pesar, o incluso como consecuencia del cambio continuo. Su principal asunción es que con un poco de planificación, un poco de codificación y unas pocas pruebas, se puede decidir si se está siguiendo un camino acertado o equivocado, evitando tener que echar marcha atrás demasiado tarde.
Prácticas destacables de este modelo son:
Programación en parejas ó “Pair Programming”: para desarrollos complejos este modelo aconseja que dos desarrolladores se sienten juntos y programen conjuntamente. Cuando dos personas trabajan en lo mismo, se discuten ideas, se corrigen errores y como resultado se obtiene un código más robusto y elegante, con lo que conlleva un aumento de productividad.
Desarrollo Orientado a Pruebas ó “Test Driven Development (TDD)” o: Se trata de programar antes la prueba que la funcionalidad en sí. Con esto, el desarrollador realiza el código de manera que no va a fallar, aumentando la calidad de lo entregado.
Integración continua: cada vez que se realice un cambio hay generar una versión que se pueda probar o incluso entregar. Si hay algo mal, la integración fallará y se podrá corregir al momento.
Scrum
Aunque surgió como modelo en el desarrollo de productos tecnológicos, sus principios son válidos para entornos que trabajan con requisitos inestables, y necesitan agilidad: situaciones frecuentes en el desarrollo de determinados sistemas de software. Jeff Sutherland aplicó los principios de los campos de Scrum al desarrollo de software en 1993 en Easel Corporation (Empresa que en los macro-juegos de compras y fusiones se integraría en VMARK, luego en Informix y finalmente en Ascential Software Corporation). En 1996 presentó junto con Ken Schwaber, las prácticas que empleaba como válidas para gestionar el desarrollo de software OOPSLA 96 (Schwaber & Sutherland, 1996).
Otros modelos o prácticas ágiles
Además de las mencionadas, destacan otras como:
- Crystal: Adaptative Software Development (ASD) ó Desarrollo de Software Adaptativo.
- Pragmatic Programming (PP) ó Programación pragmatica.
- Agile Modeling (AM) ó Modelado Ágil.
- Feature Driven Development (FDD) ó Desarrollo Orientado a Funcionalidad.
- Etc.
Estas metodologías ágiles no deben considerarse como modelos de procesos completos. Cada metodología ágil surge de la difusión de una o unas “buenas prácticas” diseñada y utilizada con éxito por su autor, y contrastado éste también por los equipos que la van incorporando.
Por eso, en cada caso, son conjuntos de prácticas focalizadas sobre un área de conocimiento, más o menos delimitado, de la Ingeniería del Software. Las prácticas de Agile Modeling cubren básicamente tareas técnicas de diseño, las de Scrum diseñadas por Sutherland y Schwaber se centran en la gestión del desarrollo, Extreme Programming cubre las actividades que desde el plano completo de la ISO 12207 pertenecería al desarrollo, etc.
Por esta razón es frecuente combinar varias de estas prácticas (ej. XP + Scrum + FDD) para dar cobertura ágil a un ámbito más amplio del ciclo de vida.
