domingo, 12 de febrero de 2017

Ensayo: "Las Metodologías Ágiles"

Las metodologías ágiles están revolucionando la manera en la que se desarrolla software, Estas metodologías dejan de lado factores que podrían ser irrelevantes, y los sustituye por practicas amigables y sencillas que harán del desarrollo de software una experiencia mas personal entre el equipo y el cliente, a diferencia de las metodologías tradicionales las cuales eran estructuradas y de alguna manera, mas rigurosas en todos sentidos del proceso de desarrollo de software, pues establecían pautas precisas para obtener requerimientos, analizarlos, diseñar y proponían una documentación detallada de todo lo que se efectuaba sobre el software, por mencionar algunas de las normativas que seguían en esencia estas "metodologías tradicionales". Bien ahora, este ensayo busca explicar esta tendencia por las metodologías ágiles que se ha manifestado cada vez con mas frecuencia entre los equipos de desarrollo.

“Una metodología es una colección de procedimientos, técnicas, herramientas y documentos auxiliares que ayudan a los desarrolladores de software en sus esfuerzos por implementar nuevos sistemas de información. Una metodología esta formada por fases, cada una de las cuales se puede dividir en sub-fases, que guiarán a los desarrolladores de sistemas a  elegir las técnicas mas apropiadas en cada momento del proyecto y también a planificarlo, gestionarlo, controlarlo y evaluarlo.” (Fitzgerald, 1995)

Una metodología sera utilizada en el proceso de software, que son todas aquellas actividades que se llevan a cabo para elaborar software. Siendo así, la metodología implementada nos indicara las fases o procesos a realizarse durante el proceso. La representación del proceso, sus actividades y la manera en la que estas son elaboradas es el modelo de procesos.

Las metodologías ágiles surgen en febrero del 2001 durante una reunión entre 17 expertos de la industria del software que se celebro en Utah, USA, como se enuncia en Metodologías Ágiles en el Desarrollo de Software (José H. Canós). En esta reunión se establecieron las maneras para que se pudiera desarrollar software de manera relativamente mas rápida que utilizando las metodologías tradicionales, y que ademas fuera de una manera en la que pudiera responder a los cambios que surgieran durante el proceso. Como resultado, se creo "The Agile Alliance" una asociación que se encargaría de promover y difundir los conceptos del desarrollo ágil. Para plasmar estos conceptos, y formalizar esta nueva "filosofía del desarrollo de software", se elaboro el "Manifiesto Ágil".

En el Manifiesto Ágil se enuncian los principios y valores que debe se deben de cumplir para que una metodología pueda ser ágil. Sus 4 valores primordiales se enuncian a continuación (Aliance, s.f.):

·         A los individuos y su interacción, por encima de los procesos y las herramientas
·         El software que funciona por encima de la documentación exhaustiva
·         La colaboración por el cliente, por encima de la negociación contractual
·         La respuesta al cambio, por encima del seguimiento a un plan

Siendo así, podremos decir que las metodologías ágiles buscan volver del desarrollo de software un proceso mas interactivo y de colaboración que un guion a seguir. Para las metodologías ágiles es mas importante la colaboración cliente-equipo, pues así la obtención de requerimientos, como la estructura y cambios al software son factores que de manera tradicional se vuelven monótonos, pues los requerimientos pueden no ser plasmados con exactitud y los cambios podrían ser un problema según la fase en que el desarrollo vaya, todo esto, es optimizado por las metodologías ágiles, pues al contar con el cliente siendo "parte del equipo", los requerimientos siempre están actualizados y es en esencia la visión del mismo cliente. Sin embargo, algo debatible y de gran controversia en el mundo del desarrollo, es la documentación, pues para muchos es una parte fundamental del desarrollo (Metodologías tradicionales), para otros no toda la documentación es verdaderamente necesaria (Metodologías Ágiles). Podemos analizar este aspecto desde varias perspectivas pues, para el cliente puede llegar a ser irrelevante, pero para el equipo, si el cliente no trabaja con ellos de manera cercana en el desarrollo, es un gran sustento contar con la documentación, así mismo si el sistema desarrollado se vuelve heredado o si otro equipo va a trabajar sobre el mismo, la documentación entonces tomaría un papel muy relevante y su ausencia seria muy contraproducente, sin embargo, las metodologías ágiles no prohíben la redacción de la documentación, mas bien, proponen que solo se redacte la necesaria, y este hecho, es en efecto rentable pues en muchas ocaciones, solo la documentación necesaria es suficiente.

Algunos ejemplos de Metodologias Agiles son las siguientes:
  • EXTREME PROGRAMING, XP
  • SCRUM
  • Crystal Methodologies
  • Dinamic Systems development Method (DSM)
  • Addaptive Software Development (ASD)
Para concluir, podemos decir que las Metodologías Ágiles buscan optimizar todas aquellas actividades del proceso de desarrollo del software en las que las Metodologías Tradicionales normalmente tardarían mucho mas tiempo en realizar. Ademas, los Métodos Ágiles resuelven problemas sustanciales del desarrollo como es la obtención de los requerimientos y los cambios en los mismos. Como practica, no se puede decir que las Metodologías Ágiles son mejores a las tradicionales, y mucho menos, peores, en realidad surgen como una gran alternativa a estas, pues el hecho de que el cliente forme parte del equipo de desarrollo es una gran ventaja, facilita desde el análisis de la problemática hasta los  posibles cambios en los requerimientos, sin dejar de lado el factor de la documentación, en el cual, solo documentar lo esencial y necesario del desarrollo, podría ser una gran diferencia entre poder codificar mas y de manera mas intuitiva de acuerdo al mismo cliente que hacerlo siguiendo requerimientos que podrían cambiar. Es por ello que muchos equipos de desarrollo cada vez utilizan mas estas metodologías ágiles, pues se adecuan a al proceso de desarrollo de manera que lo vuelve mucho mas simple y eficiente. Sin duda alguna, las Metodologías Ágiles representan una evolución positiva en el mundo del desarrollo de software. 


Referencias

Aliance, A. (s.f.). Manifesto for Agile Software Development. Obtenido de http://agilemanifesto.org/

Fitzgerald, D. E. (1995). Information Systems Development: Methodologies, Techinques and Tools. McGraw-Hill.
José H. Canós, P. L. (s.f.). Métodologías Ágiles en el Desarrollo de Software. Camino de Vera s/n, 46022 Valencia: DSIC -Universidad Politécnica de Valencia.




No hay comentarios:

Publicar un comentario