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