Metodologías Ágiles
A principios de los 90, existía una opinión general de que la mejor forma de obtener un software óptimo era a través de una planificación cuidadosa del proyecto, una garantía de calidad formalizada, la utilización de métodos de análisis y diseño soportados por herramientas CASE, y procesos de desarrollo de software controlados y rigurosos.
Esta opinión provenía de lacomunidad de ingenieros de software implicada en el desarrollo de grandes sistemas software de larga vida que normalmente se componían de un gran número de programas individuales.
Algunos o la totalidad de estos programas eran a menudo sistemas críticos (que no pueden interrumpirse bajo ninguna circunstancia).
Este software era desarrollado por grandes equipos de trabajo que a menudo estabandispersos geográficamente y trabajaban en el software durante largos períodos de tiempo (por ej: los sistemas de control de un avión moderno, en los cuales pueden transcurrir hasta 10 años desde la especificación inicial hasta la utilización).
Estos enfoques implican una importante sobrecarga de trabajo en cuanto a la planificación, diseño y documentación del sistema. Este esfuerzo se justifica cuandoel sistema es un sistema crítico o cuando muchas personas diferentes estarán involucradas en el mantenimiento del software durante su vida.
Sin embargo, cuando este enfoque de desarrollo basado en la planificación fue aplicado a sistemas de negocio pequeños o medios, el esfuerzo invertido era tan grande que algunas veces dominaba el proceso de desarrollo del software. Se pasaba más tiempopensando en cómo se debía desarrollar el sistema que en programar el desarrollo y las pruebas. Además, cuando cambiaban los requerimientos, se hacía esencial rehacer el trabajo, y al menos en principio, la especificación y el diseño tenían que cambiar con el programa.
El descontento con estos enfoques pesados condujo a varios desarrolladores de software a proponer nuevos métodos ágiles.
Éstospermitieron a los equipos de desarrollo centrarse en el software mismo en vez de en su diseño y documentación.
Los métodos agiles son mecanismos de desarrollo de software en los cuales se busca obtener un producto de alta calidad en lapsos cortos de tiempo. Universalmente, dependen de un enfoque iterativo para la especificación, desarrollo y entrega del software.
Fueron desarrolladosprincipalmente para apoyar el desarrollo de aplicaciones de negocio donde los requerimientos del sistema normalmente cambiarán rápidamente durante el proceso de desarrollo.
Están pensados para entregar software funcional de forma rápida a los clientes, quienes pueden entonces proponer que se incluyan nuevos requerimientos en iteraciones posteriores del sistema, o cambios en los mismos.
Contraste entreMetodologías Ágiles y Metodologías Tradicionales
Probablemente la metodología más conocida sea Programación Extrema (XP). Sin embargo existen otros enfoques como:
Scrum
Desarrollo Rápido de Aplicaciones (RAD)
Proceso Unificado Ágil (AUP)
Método de Desarrollo de Sistemas Dinámicos (DSDM)
Desarrollo Dirigido por Características (FDD)
Aunque todas estas metodologías se basan en la noción dedesarrollo y entrega incrementales, proponen procesos diferentes para alcanzarla. Sin embargo, comparten un conjunto de principios, y por lo tanto tienen mucho en común. Estos principios son:
Participación del Cliente:
Los clientes deben estar fuertemente implicados en todo el proceso de desarrollo. Su papel es proporcionar y priorizar nuevos requerimientos del sistema y evaluar lasiteraciones del sistema.
Entrega incremental:
El software se desarrolla en incrementos, donde el cliente especifica los requerimientos a incluir en cada incremento.
Personas, no procesos:
Se deben reconocer y explotar las habilidades del equipo de desarrollo. Se les debe dejar desarrollar a los miembros del equipo sus propias formas de trabajar, sin procesos formales.
Aceptar el cambio:
Se...
Regístrate para leer el documento completo.