¿Qué es un método?
A menudo para comprender un concepto es necesario recurrir a los conceptos de los que este deriva o simplemente a los orígenes de este.
Un método se puede definir como:
El proceso, trazado por medio de reglas y procedimientos para el uso de técnicas y herramientas, que conduce a un objetivo en especifico. está basado en una determinada filosofía.
Una definición formal aplicada para el software:
“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.”
-David Avison, Guy Fitzgerald-
¿Qué conlleva agilidad?
Una vez comprendido el concepto de método debemos definir el concepto de agilidad, que, muchas veces suele considerarse "mejor", la agilidad significa básicamente la capacidad para ejecutar rápida, pronta, ligera y eficazmente alguna tarea. Agilidad no es para nada sinónimo de calidad y por lo tanto un método ágil no tiene por que asegurar calidad.
¿Cómo se usa en desarrollo de software?
Uniendo los dos conceptos de método y agilidad podemos sencillamente definir un método ágil:
El proceso, trazado por medio de reglas y procedimientos para el uso de técnicas y herramientas basadas en una determinada filosofía con el fin de lograr un objetivo y, en su proceso, ejecutar las tareas necesarias rápida, pronta y ligeramente.
Este concepto sirve a nivel teórico. Pero es un concepto muy básico y que en la ingeniería de software no nos dice realmente algo útil. Para terminar de definirlo debemos de estudiar un poco el contexto histórico del surgimiento de los Métodos ágiles.
Contexto histórico del surgimiento de Los Métodos Ágiles
Los métodos tradicionales usados comúnmente en proyectos grandes resultaron ineficaces para ciertas situaciones que empezaron a surgir. Las causas son muchas y normalmente se dice que la combinación de todas estas fue lo que permitió una nueva forma de desarrollar software.
Podemos enlistar las mas relevantes:- Lentitud de reacción, exceso de documentación, en definitiva, falta de agilidad de los modelos de desarrollo existente.
- Explosión de la red y las aplicaciones Web. Surgió la web y con ello aplicaciones y sistemas en tiempos muy cortos, la vida del software se vio altamente reducida. Se requirió un rápido desarrollo para sobrevivir en el mercado.
- Movimiento Open-Source. También llamado código abierto permitió que las comunidades en Internet desarrollaran en tiempos muy cortos debido a la cantidad de personas participando en estos proyectos y que contaban con la ventaja de que no conllevaban tanta normatividad.
Las metodologías tradicionales no funcionaban en pequeños proyecto por que no eran flexibles a cambios. En marzo de 2001, Kent Beck convocó a 17 críticos de los modelos de mejora basados en procesos. En la reunión se acuñó el término “Métodos Ágiles" donde surgiría un resumen en forma de cuatro principios, que actualmente conocemos como “Manifiesto Ágil”.
Manifiesto Ágil
Basado en 4 valores:
- Individuos e interacciones - sobre procesos y herramientas
- Software funcionando - sobre documentación extensiva
- Colaboración con el cliente - sobre negociación contractual
- Respuesta ante el cambio - sobre seguir un plan
Los doce principios del manifiesto ágil
Nuestra mayor prioridad es satisfacer al cliente
mediante la entrega temprana y continua de software
con valor.
Aceptamos que los requisitos cambien, incluso en etapas
tardías del desarrollo. Los procesos Ágiles aprovechan
el cambio para proporcionar ventaja competitiva al
cliente.
Entregamos software funcional frecuentemente, entre dos
semanas y dos meses, con preferencia al periodo de
tiempo más corto posible.
Los responsables de negocio y los desarrolladores
trabajamos juntos de forma cotidiana durante todo
el proyecto.
Los proyectos se desarrollan en torno a individuos
motivados. Hay que darles el entorno y el apoyo que
necesitan, y confiarles la ejecución del trabajo.
El método más eficiente y efectivo de comunicar
información al equipo de desarrollo y entre sus
miembros es la conversación cara a cara.
El software funcionando es la medida principal de
progreso.
Los procesos Ágiles promueven el desarrollo
sostenible. Los promotores, desarrolladores y usuarios
debemos ser capaces de mantener un ritmo constante
de forma indefinida.
La atención continua a la excelencia técnica y al
buen diseño mejora la Agilidad.
La simplicidad, o el arte de maximizar la cantidad de
trabajo no realizado, es esencial.
Las mejores arquitecturas, requisitos y diseños
emergen de equipos auto-organizados.
A intervalos regulares el equipo reflexiona sobre
cómo ser más efectivo para a continuación ajustar y
perfeccionar su comportamiento en consecuencia.
Conclusión
Los métodos ágiles son una herramienta muy útil se se usan adecuadamente y no existe, ni existirá, una formula para saber cual usar. Se deben de usar dependiendo de los recursos y el tipo de proyecto. Sin duda los métodos ágiles son una herramienta que debemos conocer ya que juega una pieza fundamental en el desarrollo de software en la actualidad. Pero, que lamentablemente, no garantizan un producto de calidad. Eso lo hace todo el equipo de desarrollo.
Referencias:
Alianza Ágil . (2001). Manifiesto por el Desarrollo Ágil de Software. 2/12/2017, de Alianza Ágil Sitio web: http://agilemanifesto.org/iso/es/manifesto.html
M.C. José Martín Olguín Espinoza. (2004). Análisis Orientado a Objetos Ingeniería del Software. Universidad Autónoma de Baja California.