Metodologías Agile
‘Agile’ es más que una metodología para el desarrollo de proyectos que necesitan de rapidez y flexibilidad, es una filosofía que supone una forma distinta de trabajar y de organizarse. De tal forma que cada proyecto se divide en pequeñas tareas que deben completarse y entregarse en pocas semanas. El objetivo es desarrollar productos y servicios de calidad que respondan a las necesidades de clientes que requieren soluciones con mejores tiempos de respuesta.
Estas metodologías nacieron de la industria de desarrollo de software, una vez que comprendieron que las formas tradicionales de trabajo retrasaban mucho la entrega del producto final. Fue un cambio de paradigma, ya que los contratos eran muy cerrados e involucraban un escasa comunicación, que conducía a entregables de mala calidad y tiempo de entrega muy largos.
En 2001, se reunieron los CEOs de las principales empresas de Software en Utah. De esa reunión se establecieron las mejores prácticas de cada compañía y crearon el ‘Manifiesto Agile’. Un modelo de mejora continua en el que se planifica, se crea, se comprueba el resultado y se mejora el producto final. Una serie de actividades que son constantes y rápidas, con plazos de entrega reducidos que buscan evitar la dispersión y centrar toda la atención en un entregable asignado.
Los 11 Principios del Manifiesto Agile
-
Las metodologías ágiles tienen como objetivo principal la satisfacción del cliente al garantizar la entrega oportuna y temprana del software de valor.
-
Las metodologías ágiles están creadas para aceptar positivamente a los requisitos cambiantes, esto implica que podrá procesarlos bien, aun cuando llegan en una etapa tardía del desarrollo del proyecto. De esta manera, los procesos ágiles le dan una ventaja competitiva a la empresa que las utiliza.
-
Se hacen entregas frecuentes de software perfectamente funcional en periodos que van desde un par de semanas hasta un par de meses, dependiendo de la duración del proyecto.
-
Las personas encargadas de la empresa y los desarrolladores de las metodologías ágiles deben trabajar en conjunto y mantener una comunicación cotidiana durante el tiempo de desarrollo del proyecto.
-
Se construirán los proyectos destinados a los individuos motivados.
-
Toda la información que ingresa y toda la información que sale debe ser comunicada entre los desarrolladores de las metodologías ágiles y las personas de la empresa, cara a cara, esto para garantizar la eficiencia y eficacia en el proceso.
-
Se va a determinar que todo el proceso está funcionando cuando el software, producto o servicio empiece a funcionar.
-
Los procesos que intervienen en las metodologías ágiles ayudan a promover el desarrollo sostenido. De esta manera, tanto los desarrolladores, patrocinadores como los usuarios deberán de mantener un ritmo constante de manera indefinida.
-
Para garantizar una excelente aplicación de metodologías ágiles, tanto los desarrolladores como las personas de la empresa deberán atenderse mutuamente para responder inquietudes y aclarar preguntas.
-
Menos es más, siempre mantener la simplicidad para maximizar la cantidad de trabajo que se elabora.
-
Las mejores arquitecturas, requisitos y diseños se originan de equipos que se auto organizan apropiadamente.
Las 3 metodologías ágiles más utilizadas
Existen numerosas metodologías ágiles empleadas por distintas empresas que pueden también ser definidas como marcos de trabajo, sin embargo, tres son las más utilizadas por su facilidad al emplearlas y porque garantizan excelentes resultados, estas son: SCRUM, Programación Extrema-XP y KANBAN.
SCRUM
Es la más utilizada de las metodologías ágiles. Este modelo de desarrollo ágil se caracteriza por dejar atrás la fase de planificación y posterior ejecución del producto para dar lugar al desarrollo incremental (una estrategia que consiste en desarrollar un software especializado para responder ante las debilidades del modelo tradicional de cascada). SCRUM se centra en conocer a detalle a las personas que forman parte de un equipo auto organizado en vez de invertir tiempo investigando la calidad de los procesos empleados, es así como se garantiza la calidad del resultado. Algunos la conocen como la metodología del caos debido a que respalda la teoría de que todos los procesos tienden a ser caóticos naturalmente. Una vez que acepta su naturaleza, SCRUM propone una estrategia para gestionar el caos y no eliminarlo por completo.
SCRUM también pone el ojo a las diferentes fases del desarrollo, así como se dedica a tener una visión acertada de lo que busca el cliente. En SCRUM existen interacciones llamadas sprint que suelen repetirse continuamente hasta que el cliente decide que ya se ha cerrado la evolución del producto, estas interacciones responden a la construcción del producto en forma incremental, el cual la hará precisamente a través de estas interacciones que hemos descrito.
Características específicas:
-
Este desarrollo ágil se basa en dos pilares fundamentales: el primero es el ciclo de vida incremental, que consiste en aprender del proceso anterior para mejorar o incrementar el valor de las versiones de los productos y, finalmente, entregar uno de alta calidad; el segundo pilar son las revisiones del equipo de desarrolladores y miembros de la empresa.
-
Reunirse a conversar y a revisar los avances conseguidos es muy importante para SCRUM porque consideran que esto va a garantizar una comunicación transparente entre ambas partes, además que facilitan la reunión de planificación del sprint, lo cual es algo muy importante en un equipo ágil. En ésta reunión se decide qué se va a realizar con el sprint, cuáles son los requisitos del cliente, sus prioridades, etc.
-
Se estima que se debe hacer una reunión diaria con una duración máxima de 15 minutos. En esta reunión se hará una especie de resumen de lo que se hizo al día anterior, lo que se planea hacer en el presente día y cuáles son los problemas que se han conseguido en ese período.
-
Luego se procede a revisar cada sprint una vez que se ha finalizado con su desarrollo, es aquí donde se discute qué se logró completar y qué no. Estas revisiones son muy útiles no sólo por mantener muy informados a todos, sino que además le da la posibilidad a los implicados en el proceso de que den su opinión de cada sprint y así se contribuya a la mejora inmediata de cada proceso para la próxima vez.
Programación Extrema (XP)
Esta metodología ágil tiene como objetivo el potenciar al máximo las relaciones interpersonales del equipo de trabajo para así garantizar el éxito durante el desarrollo del software, que al final del día es lo que más interesa. Aquí se tiene como objetivo principal la felicidad y estabilidad del equipo de trabajo, se busca que todos estén muy cómodos, haya un buen nivel de participación de los miembros y que los desarrolladores aprendan todo lo que puedan. Esta herramienta es muy recomendada para startups o empresas que buscan consolidarse debido a que su principal objetivo es afianzar la relación entre los empleados y clientes.
Busca acabar con la frialdad y en cambio ayudar a que se dé una excelente retroalimentación entre el cliente y el equipo desarrollador. Si tiendes a presentar proyectos que suelen cambiar constantemente, entonces XP es una genial opción para ti.
Características específicas:
-
En XP, las personas son el principal factor para garantizar el éxito de un proyecto de software.
-
Uno de sus objetivos principales es el de conseguir que el software funcione, se centran más en esto antes que en la documentación de los procesos.
-
XP se interesa en la colaboración de las personas, que exista una nutritiva interacción entre el cliente y los desarrolladores.
-
Responde muy bien ante los cambios, lo cual es una ganancia inmediata porque la manera en como puedan percibir los mismos va a definir el éxito o el fracaso del proyecto.
-
Planificación flexible y abierta a modificaciones.
-
El equipo tiende a dividir el trabajo que ha encargado el cliente en acciones pequeñas las cuales tendrán un tiempo específico para ser completadas. En XP, el cliente decide qué acciones se realizarán primero y de esta manera los desarrolladores realizan el trabajo dependiendo de lo que ha decidido el cliente.
KANBAN
La tercera metodología ágil Kanban, es una palabra japonesa que responde al significado “tarjetas visuales”. Es conocida también como “sistema de tarjetas”, pues hace uso de estas para que la empresa y sus empleados puedan tener consciencia sobre los procesos que se están llevando a cabo dentro de la compañía y puedan regular su flujo, es decir, limitan el trabajo en curso para que se haga de forma más productiva: si no se ha terminado una tarea, no se debe empezar otra. La técnica fue creada en Toyota y desde entonces se emplea por muchas empresas para mantener un control detallado de los avances conseguidos en el trabajo, el cual es totalmente visual. En la actualidad, Kanban es de las preferidas en la gestión de proyectos software.
Características específicas:
-
Regula el flujo de avance continuo, es por esta razón que se utiliza mucho en proyectos TIC.
-
Presenta toda la información relativa a la producción en forma muy visual, donde permite identificar fácilmente los componentes y otros estados del proyecto.
-
Se basa en el WIP (Work in Progress o Trabajo en curso en español), una idea muy simplificada.
-
Utiliza un cuadro o diagrama compuesto por tres columnas de tareas a realizar: pendientes, en proceso y terminadas.
-
Todos los miembros del equipo tienen acceso al diagrama o cuadro, lo cual facilita el flujo de actividades y evita que se repitan o se den por perdidas u olvidadas algunas.
-
Promueve la productividad y eficiencia del equipo de trabajo.
Además de las mencionadas anteriormente y como decíamos más arriba, existen otras metodologías que tal vez no sean tan famosas, también son muy eficaces. Por ejemplo Agile Inception, que, a diferencia de las otras metodologías, está orientada a alcanzar los objetivos generales de la empresa, además de girar en torno al método “elevator pitch”, el cual consiste en realizar distintas reuniones cortas entre los socios y el equipo de trabajo.
Ventajas e inconvenientes de las metodologías ágiles
Las metodologías ágiles de proyectos ofrecen mayor libertad a las organizaciones, aportando las siguientes ventajas:
-
Flexibilidad. Al no disponer previamente de unos objetivos cerrados, los proyectos realizados bajo este modelo pueden readaptarse a los cambios que surjan durante su ejecución, dando una respuesta actualizada y acorde a las circunstancias.
-
Mejora continua. La planificación no se cierra en el momento inicial, sino que se va realizando un desarrollo incremental a lo largo de todo el proceso, incorporando optimizaciones de forma constante.
-
Reducción de errores. Esta revisión paulatina del proyecto conforme se ejecuta permite detectar los fallos de la iniciativa rápidamente y corregirlos.
-
Especial éxito en objetivos indefinidos o a largo plazo. Las metodologías ágiles están especialmente indicadas en aquellos proyectos en los que el alcance o las metas no están claras, sino que se irán conociendo y consiguiendo conforme evolucione la iniciativa, o cuando son iniciativas con un extenso desarrollo durante el cual se produzcan numerosas evoluciones del mercado.
-
Comunicación. Dado que no existe un reparto de objetivos pormenorizado, el modelo precisa de un flujo de comunicación constante entre los distintos trabajadores o departamentos intervinientes en los equipos de trabajo, de todo que la información que cada individuo aporte sirva para darle forma al proyecto final.
Por otro lado, frente a esta flexibilidad de las metodologías ágiles, el sistema también tiene sus puntos en contra:
-
Generan incertidumbre, al no estar concretados los objetivos.
-
Se pueden alargar demasiado en el tiempo, puesto que, al no estar nada cerrado, se va a tener que invertir más tiempo en consensuar y concretar los detalles.
-
Pueden dar lugar a conflictos de equipo, debido a esa continua interacción entre diferentes profesionales.
-
Al no existir una hoja de ruta exhaustiva, el papel de los miembros del proyecto es fundamental para llegar a buen término, de modo que la ausencia de alguno de los profesionales puede causar graves obstáculos para el éxito de la iniciativa.
Bibliografía
https://www.bbva.com/es/metodologia-agile-la-revolucion-las-formas-trabajo/
https://tentulogo.com/cuales-son-las-metodologias-agiles-y-por-que-son-beneficiosas-para-tu-empresa/
https://blog.grupo-pya.com/12574/