En contraposición a las metodologías convencionales, las metodologías ágiles aparecen como alternativa atractiva para adaptarse a este entorno. Tal y como indican por una parte Lindvall y sus colegas, en el artículo escrito el año 2002 titulado “Hallazgos empíricos en métodos agiles” y por otra Nerur y sus colegas, en el artículo escrito el año 2005 titulado “Cambios en la migración hacia las metodologías agiles”, son apropiadas cuando los requisitos son emergentes y cambian rápidamente. De este modo, presentan diversas ventajas en el contexto actual: (1) Capacidad de respuesta a cambios a lo largo del desarrollo ya que no los perciben como un lastre sino como una oportunidad para mejorar el sistema e incrementar la satisfacción del cliente, considerando la gestión de cambios como un aspecto característico del propio proceso de desarrollo software. (2) Entrega continúa y en plazos breves de software funcional lo que permite al cliente verificar in situ el desarrollo del proyecto, ir disfrutando de la funcionalidad del producto progresivamente y comprobando si satisface sus necesidades, mejorando de esta forma su satisfacción. Además, el desarrollo en ciclos de corta duración favorece que los riesgos y dificultades se repartan a lo largo del desarrollo del producto, principalmente al comienzo del mismo y permite ir aprendiendo de estos riesgos y dificultades. (3) Trabajo conjunto entre el cliente y el equipo de desarrollo con una comunicación directa que pretende mitigar malentendidos, que constituyen una de las principales fuentes de errores en productos software, y exceso de documentación improductiva. (4) Importancia de la simplicidad, eliminando el trabajo innecesario que no aporta valor al negocio. (5) Atención continúa a la excelencia técnica y al buen diseño para mantener una alta calidad de los productos. (6) Mejora continúa de los procesos y el equipo de desarrollo, entendiendo que el éxito depende de tres factores fundamentales: Éxito técnico, éxito personal y éxito organizacional.
Según Fowler, en el artículo citado en párrafos anteriores, desgraciadamente en la actualidad, debido generalmente al exceso de burocracia de las metodologías tradicionales se ha pasado, en la mayoría de los casos, a no utilizar ningún método de trabajo específico y a trabajar “a destajo” con el único y erróneo objetivo de ahorrar tiempo y dinero. Aplicar cierto grado de disciplina ayudará en el proceso de desarrollo y siempre es mejor utilizar un proceso ágil que ninguna otra cosa. Sin embargo, un proceso ágil es adecuado para el desarrollo de cierto tipo de aplicaciones, por lo que no se deberían utilizar estos métodos para cualquier tipo de desarrollo software. Los procesos ágiles son una buena elección cuando se trabaja con requisitos desconocidos o variables. Si no existen requisitos estables, no existe una gran posibilidad de tener un diseño estable y de seguir un proceso totalmente planificado, que no vaya a variar ni en tiempo ni en dinero. En estas situaciones, un proceso adaptativo será mucho más efectivo que un proceso predictivo. Por otra parte, los procesos de desarrollo adaptativos también facilitan la generación rápida de prototipos y de versiones previos a la entrega final, lo cual agradará al cliente. Pero la mayor barrera que habrá que salvar será convencer al cliente de que no existe una planificación y una forma fija de hacer las cosas. En cualquier caso, lo que se garantiza es un menor riesgo ante la posibilidad de cambios en los requisitos. Porque los cambios existen, y los procesos adaptativos permitirán estos cambios lo que en definitiva, garantizará que el producto final sea el deseado por el cliente. Según afirma Booch, en el artículo escrito el año 2001 titulado “Desarrollando el futuro. Soluciones de software”, todas estas razones son las que hacen que los procesos indicados por las comunidades de Extreme Programming y de Open Source hayan suscitado tanto interés.
No hay comentarios:
Publicar un comentario