Hemos estado describiendo las metodologías de desarrollo de software que han ido evolucionando a lo largo del tiempo. Cabría preguntarse:
• ¿Qué nuevas metodologías se están desarrollando?,
• ¿Siguen todas las metodologías los modelos tradicionales o están
apareciendo otras posibilidades?
Algunos desarrolladores creen que las metodologías tradicionales
generan demasiada burocracia y exigen demasiado esfuerzo, sobre todo para empresas de desarrollo pequeñas y en desarrollos de
proyectos pequeños. Por otro lado, el mercado competitivo actual de los productos tecnológicos, no sólo exige calidad, coste e innovación, sino también rapidez y flexibilidad. En este contexto, el mercado necesita ciclos de desarrollo más cortos.
Para solucionar estos problemas se han propuesto una serie de principios y valores que aligeren la carga de las metodologías tradicionales. Con el desarrollo de estas ideas y conceptos han aparecido un nuevo tipo de metodologías que se denominan de desarrollo ágil. Sin embargo, algunos expertos consideran que el desarrollo ágil no constituye realmente una nueva metodología, sino un conjunto de recomendaciones y principios aplicables a las metodologías tradicionales para hacerlas más flexibles, rápidas y adaptables.
Este enfoque está mostrando su efectividad en proyectos pequeños, con requisitos inestables o cambiantes (incertidumbre) y cuando se exige reducir drásticamente los tiempos de desarrollo pero manteniendo una alta calidad del producto final.
Las metodologías ágiles se basan en el trabajo en equipo y pretenden:
• Centrarse en el desarrollo y en satisfacer al cliente, es decir, producir un sistema con las funcionalidades correctas. Esto significa que el sistema final tiene que incluir sólo el mínimo número de características necesarias para satisfacer por completo al cliente real.
• Mejorar las predicciones y previsiones para cumplir plazos y ajustarse a los recursos.
• Eliminar riesgos tomando en consideración la incertidumbre.
• Disminuir costes, por ejemplo, deben eliminarse actividades relacionadas con algunos productos intermedios, como documentos formales de especificaciones que no tienen una relación directa con el resultado final del producto.
Las metodologías ágiles están basadas fundamentalmente en
metodologías orientadas a objetos, algunas de las más utilizadas son:
Programación Extrema (XP), Scrum (Schwaber y Beedle 2001), o Rational
Unified Process (RUP) que por su flexibilidad puede seguir los principios
de la metodología ágil. De hecho vemos que RUP se adapta a cualquier
necesidad (sistemas tradicionales, sistemas con gran incertidumbre,
sistemas de tiempo real, desarrollo ágil…).
No hay comentarios:
Publicar un comentario