¿Porque es importante desarrollo ágil?
Hoy en día con el auge de la tecnología, y con el objetivo de agilizar y automatizar los procesos en el desarrollo de software, nos vemos en la necesidad de implantar Metodologías de Desarrollo de Software que nos ayuden a entregar un producto de calidad. Las metodologías ágiles de desarrollo de software han despertado interés gracias a que proponen simplicidad y velocidad para crear software maximizando su valor.
Las metodologías tradicionales no se adaptan a las nuevas necesidades o expectativas que tienen los usuarios hoy en día, en parte que los métodos usados no son flexibles ante la exigencia de nuevos requerimientos. Estos cambios generalmente implican altos costos, demanda de tiempo y la reestructuración total del proyecto que se esté llevando. En contraparte, los métodos ágiles permiten un desarrollo iterativo y adaptable que permite la integración de nuevas funcionalidades a lo largo del desarrollo del proyecto; para que tanto el cliente como el desarrollador queden satisfechos porque el producto final tiene una calidad adecuada.
Un proceso es ágil cuando el desarrollo de software es:
- Incremental. Entregas pequeñas de software, con iteraciones cortas.
- Constante en el tiempo ("time-boxed"). La iteración no se alarga para acomodar requerimientos que no se
alcanzaron a implementar.
- Cooperativo. Cliente y desarrolladores trabajan juntos constantemente con una cercana comunicación.
- Es adaptable. Permite realizar cambios de último momento. Cada iteración parte con una nueva reevaluación de los requerimientos.
- Basado en equipos auto-organizados.
Quiero saber mas sobre metodologías ágiles.
Para partir, vea este articulo en Wikipedia:
Manifiesto ágil
Mi empresa ya está certificada CMMI o ISO o sigue alguna metodología tradicional de tipo RUP. ¿Porque es el desarrollo ágil importante para mi?
Las metodologías tradicionales se caracterizan por ser muy burocráticas y ceremoniales, de acuerdo a sus orígenes en licitaciones militares (CMMI) o en el enfoque arquitectural y del modelaje (RUP). Esto implica que gran cantidad de hora-hombre es gastada en actividades que no brindan valor directo (ni tampoco indirecto) al producto o al cliente. Algunas de las metodología ágiles, como "Lean" se especializan en optimizar procesos de desarrollo eliminando los cuellos de botella y las actividades que no brindan valor.
Por otra parte, siendo el proceso centro de enfoque de metodologías tradicionales, se deja a los desarrolladores sin apoyo para mejorar prácticas básicas de desarrollo de software. Desarrollo ágil típicamente implica implementar las siguientes practicas ágiles:
- Construcción Automatizada
- Integración Continua
- Desarrollo Guiado por Pruebas (TDD)
- Refactorización
- Programación en Pareja
