Introducción
La importancia
de los métodos ágiles para el desarrollo y gestión se debe a que con el paso
del tiempo han cambiado y/o evolucionado las situaciones bajo las que se rige el
ciclo de vida del software, por lo que se ha recurrido a utilizar distintas
maneras que permitan a los desarrolladores, reducir tiempos, reducir errores en
el software, se busca mayor productividad, sin olvidar entregar un producto de
calidad. En la época de los 80's y 90's surgen nuevos enfoques, pues la
elaboración de software no es una tarea fácil. Las
metodologías ágiles de proyectos vienen a ofrecer a las personas del equipo de
trabajo una visión clara, dinámica y en tiempo real de lo que se está
trabajando en cada momento.
Usando metodologías ágiles, el cliente es un miembro más del
equipo de trabajo, por lo cual se tiene la participación activa de este en
todos los momentos del ciclo de vida del proyecto, siendo una guía para que no
haya desviaciones en el mismo y que las entregas parciales y finales sean lo
que realmente pidió, eliminando ambigüedades o supuestos. Cada una de ellas
tiene sus características e implicaciones, tienen puntos en común pero lo más
destacado es que son metodologías que pueden adaptarse según las necesidades de
la empresa o proyecto, y se han visto resultados al utilizarlas.
Desarrollo
En
el pasado existía una idea de que la mejor forma de obtener un software de
mayor calidad era planificándolo cuidadosamente, utilizando herramientas de
análisis y diseño para el desarrollo de grandes sistemas de software de un
ciclo de vida largo, que normalmente se componían de un gran número de
programas individuales.
Estos
sistemas eran desarrollados por grandes equipos de trabajo que a veces
trabajaban para distintas compañías, estaban dispersos geográficamente y
trabajaban el software durante mucho tiempo, por ejemplo, en los sistemas de
control de un avión moderno podían pasar 10 años desde la especificación
inicial hasta la utilización del sistema.
Esto
propicio un descontento por los enfoques pesados y condujo a varios
desarrolladores de software proponer nuevos métodos ágiles.
Para
comenzar a desarrollar el tema definimos los siguientes conceptos:
¿Qué
es un método? Modo ordenado y sistemático de proceder para llegar a un
resultado o fin determinado.
¿Qué
es agilidad? Es la aptitud que tiene alguien de ejecutar rápida, pronta, ligera
y eficazmente tareas de índole física o intelectual.
El
desarrollo ágil de software refiere a métodos de ingeniería del software
basados en el desarrollo iterativo e incremental, estas metodologías son
imprescindibles en un mundo en el que nos exponemos a cambios recurrentemente,
de esta manera los métodos ágiles de programación son eficientes y eficaces, ya
que nos proporcionan el alcance del mismo objetivo con menos recursos, y a su
vez, se alcanzan objetivos propuestos.
Estos
métodos ágiles permitieron a los equipos de desarrollo centrarse en el software
mismo en vez de en su diseño y documentación. Los métodos ágiles dependen de un
enfoque iterativo para la especificación, desarrollo y entrega del software, y
principalmente fueron diseñados para apoyar al desarrollo de aplicaciones de
negocio donde los requerimientos del sistema normalmente cambiaban rápidamente
durante el proceso de desarrollo. Están pensados para entregar software
funcional de forma rápida a los clientes, quienes pueden entonces proponer que
se incluyan en iteraciones posteriores del sistema nuevos requerimientos o
cambios en los mismos.
Todas
las metodologías que se consideran ágiles cumplen con el manifiesto ágil que
no es más que una serie de principios que se agrupan en 4 valores:
1.- Los
individuos y su interacción, por encima de los procesos y las herramientas.
La
gente es el principal factor de éxito de un proyecto software. Es más importante
construir un buen equipo que construir el entorno. Muchas veces se comete
el error de construir primero el entorno y esperar que el equipo se adapte
automáticamente. Es mejor crear el equipo y que éste configure su propio entorno
de desarrollo en base a sus necesidades.
2.- El
software que funciona, frente a la documentación exhaustiva.
La
regla a seguir es “no producir documentos a menos que sean necesarios de forma
inmediata para tomar un decisión importante”. Estos documentos deben ser cortos
centrarse en lo fundamental.
3.- La
colaboración con el cliente, por encima de la negociación de un contrato.
Se propone que exista una interacción constante entre
el cliente y el equipo de desarrollo. Esta colaboración entre ambos será la que
marque la marcha del proyecto y asegure su éxito.
4.- La
respuesta al cambio, por encima del seguimiento de un plan.
La habilidad de responder a los cambios que puedan
surgir a los largo del proyecto (cambios en los requisitos, en la tecnología,
en el equipo, etc.) determina también el éxito o fracaso del mismo. Por lo
tanto, la planificación no debe ser estricta sino flexible y abierta.
¿Por
qué utilizar metodologías ágiles?
En
resumen, las metodologías ágiles presentan las siguientes ventajas:
- Las metodologías ágiles son especialmente recomendadas en proyectos con requisitos poco definidos o cambiantes. Formados por equipos pequeños que resuelven problemas concretos.
- Dividir el trabajo en módulos minimiza los fallos y el coste.
- Tienen capacidad de respuesta a posibles cambios de requisitos a lo largo del proceso de desarrollo.
- Permiten la entrega continua y en plazos breves de los objetivos que se van consiguiendo.
- Trabajo conjunto entre el cliente y el equipo de desarrollo.
- Prevalece la simplicidad, lo que conlleva la eliminación del trabajo innecesario.
- Atención continua.
Estos
son algunos ejemplos de métodos de desarrollo ágil:
- SCRUM
- XP Xtream Programming
- Desarrollo Lean
Conclusión
Los
métodos ágiles son una parte fundamental en el desarrollo del software, se
basan en principios que buscan principalmente la participación del cliente,
entrega incremental que incluye las especificaciones del
cliente en cada incremento, se basa en las personas y no tanto en los procesos,
esto último con la finalidad de explotar y reconocer las habilidades del equipo
de desarrollo; aceptar el cambio, pues si el mercado, la visión general o el
público al que va a estar dirigido cambia, el software cambia con ellos, así
como mantener la simplicidad.
Es
importante reconocer que no existe
una metodología para hacer frente con éxito a cualquier proyecto de desarrollo
de software. Toda metodología debe ser adaptada al contexto del proyecto
(recursos técnicos y humanos, tiempo de desarrollo, tipo de sistema, etc.).
Por lo que el éxito de la industria del
desarrollo de software se basa en elegir y utilizar el método ágil que se
adapte más a las características y situaciones con las que se cuenta, es decir,
aprovechar los recursos tanto como se pueda. Sin
estas herramientas, el desarrollo de software seguiría siendo rutinario y
pobremente eficaz.
Referencias
-Carvajal
Riola, J. C. (Septiembre 2008). Metodologías Ágiles: Herramientas y modelo
de desarrollo de aplicaciones Java EE como metodología empresarial. Tesis
Final de Máster. Barcelona.
-Cockbun, A. (2001). Desarrollo de Software Ágil.
Addison Wesley.
-Daniel Grifor.es. (Noviembre de 2014). Obtenido de Metodologías ágiles de desarrollo de
software: http://danielgrifol.es/metodologias-agiles-de-desarrollo-de-software/
-Grupo ISSI. (2003). Metodologías Ágiles en el
Desarrollo de Software. Alicante España: jisbd.
-Raya, R. (24 de Julio de 2014). Lean Monitor Blog.
Obtenido de http://blog.leanmonitor.com/es/que-son-las-metodologias-agiles/
-Somerville, I. (2005). Ingeniería de Software.
Madrid: Pearson.
Mapa conceptual
Evaluación
1. Los métodos ágiles se utilizan en:
a) Programación Orientada a Objetos
b) Desarrollo de software
c) Soporte de Software
d) Programación estructurada
e) Calidad de Software
2. ¿Qué modelo de desarrollo de software utilizan los métodos ágiles?
a) Cascada
b) Lineal
c) Iterativo
d) Espiral
e) Evolutivo
3. ¿Cuáles son las principales características en las que se basa el método ágil?
a) Trabajo en equipo, adaptable, avances funcionales
b) Satisfacción del cliente, reduce tiempo, una sola entrega final.
c) Comunicación, no se adapta a los cambios, no es interactivo.
d) Orientado a resultados, no hay comunicación, no hay trabajo en equipo
4. ¿Cuáles son las características que diferencian al método ágil del convencional?
a) El cliente participa en el equipo de desarrollo
b) Trabajo en equipo
c) Satisfacción del cliente
d) Presenta avances incrementales del proyecto al cliente
e) Adaptable en cualquier etapa del proyecto
5. En los métodos ágiles el cliente:
a) Desarrolla Software
b) Se incorpora al equipo de trabajo
c) Trabaja en otros proyectos de software
d) Resuelve problemas de comunicación del equipo
e) Proporciona los recursos materiales
No hay comentarios:
Publicar un comentario