Iniciar sesión / Registrar Cuenta

DevOps

¿Qué es la metodología ágil?

El enfoque ágil para el desarrollo de software busca distribuir de forma permanente sistemas de software en funcionamiento diseñados con iteraciones rápidas. 

Sin embargo, la frase "metodología ágil" es engañosa porque implica que el enfoque ágil es la única forma de abordar el desarrollo de software. La metodología ágil no hace referencia a una serie de indicaciones sobre qué hacer exactamente durante el desarrollo de software. Se trata más bien de una forma de pensar en la colaboración y los flujos de trabajo, y define un conjunto de valores que guían nuestras decisiones con respecto a lo que hacemos y a la manera en que lo hacemos.

En concreto, las metodologías ágiles de desarrollo de software buscan proporcionar en poco tiempo piezas pequeñas de sistemas de software en funcionamiento para mejorar la satisfacción del cliente. Estas metodologías utilizan enfoques flexibles y el trabajo en equipo para ofrecer mejoras constantes. Por lo general, el desarrollo ágil de software implica que pequeños equipos autoorganizados de desarrolladores de software y representantes empresariales se reúnan regularmente en persona durante el ciclo de vida del desarrollo de software. La metodología ágil favorece un enfoque sencillo de la documentación de software, y acepta los cambios que puedan surgir en las diferentes etapas del ciclo de vida, en lugar de resistirse a ellos.

 

Los valores de la metodología ágil

La metodología ágil como la conocemos en la actualidad nació en el año 2001. En respuesta a los enfoques en cascada de la gestión de proyectos, en que estos se organizan como series de secuencias lineales, un grupo de desarrolladores de software redactó el Manifiesto para el Desarrollo Ágil de Software. En este documento, los programadores propusieron un nuevo enfoque de desarrollo de software y describieron cuatro características fundamentales que se deberían priorizar por encima de otras cuestiones. De acuerdo con lo que establecieron, los equipos de desarrollo ágil de software deberían valorar:

  • Las personas y las interacciones antes que los procesos y las herramientas
  • El software en funcionamiento antes que la documentación exhaustiva
  • La colaboración con el cliente antes que la negociación contractual
  • La respuesta ante el cambio antes que el apego a un plan

Los autores aclaran que todos los puntos de la lista anterior tienen cierto valor inherente. Sin embargo, proponen que valorar los puntos de la izquierda (en negrita) antes que los de la derecha puede dar lugar a mejores resultados en el desarrollo del producto. El manifiesto no busca imponer un conjunto de prácticas, sino ser una guía que permita pensar en el desarrollo de software de otra manera.

Gracias a este manifiesto, se han obtenido varios resultados prácticos. Por ejemplo, en lugar de desarrollar sistemas de software en una secuencia que va de una fase a la siguiente (que es como el método cascada garantiza la calidad de un producto), el método ágil promueve que los procesos de desarrollo y prueba sean simultáneos y constantes. Dicho de otra forma, en el desarrollo en cascada, una fase debe finalizarse por completo antes de poder pasar a la siguiente; el desarrollo ágil, por otro lado, permite que varias secuencias sucedan al mismo tiempo. 

 

¿Dónde se originó el enfoque ágil?

Los enfoques ágiles de trabajo se crearon para abordar las limitaciones del método en cascada, que se derivaba del sistema de cadena de montaje de 1913 que utilizó Henry Ford como método de fabricación, y que luego se aplicó al desarrollo de software. Desde su origen en 2001, el desarrollo ágil pisa fuerte en el sector de los sistemas de software y la gestión de proyectos, a pesar de sus múltiples variantes.

El enfoque ágil surgió cuando muchos desarrolladores de software notaron que los ciclos de producción y los métodos de colaboración del modelo en cascada no daban los resultados esperados. Para comienzos de la década de los 90, este problema se había generalizado, ya que era común que transcurrieran varios años entre la aparición de una necesidad empresarial justificada y la distribución de una aplicación en funcionamiento. Eran tantos los cambios que podían sufrir las demandas empresariales y los mercados durante esos años, que posiblemente se cancelarían partes importantes de los proyectos de software antes de poder distribuirse. El desperdicio de tiempo y recursos llevó a que varios desarrolladores de software buscaran una alternativa.

Frente a la amenaza de interrupciones, las empresas adoptan cada vez con mayor frecuencia estrategias de transformación digital que permitan seguir sus ritmos acelerados. Sin embargo, cuando esto ocurre, el desarrollo ágil de software suele adquirir un papel protagónico.

El desarrollo ágil constituye las bases de muchos de los flujos de trabajo actuales. El cloud computing, con su infraestructura de TI flexible y escalable, ha crecido en paralelo a las demandas de desarrollo ágil de software. El desarrollo nativo de la nube adopta una noción del software similar a la del enfoque ágil, es decir, funciona como una serie de servicios interconectados que se adaptan para satisfacer las necesidades empresariales.

El concepto de DevOps derriba la antigua barrera que existía entre el desarrollo de software y las operaciones. La SRE es una implementación de DevOps que utiliza el software como una herramienta para gestionar los sistemas y automatizar las tareas operativas.Los métodos de integración y distribución continuas (CI/CD) reconocen que los sistemas de software cambian permanentemente, y proporcionan a los desarrolladores herramientas para acelerar la implementación de un código nuevo.

Posiblemente haya notado que el concepto de "metodología ágil" es una idea ágil en sí misma, porque responde a las necesidades de sus clientes (es decir, los desarrolladores de software) durante los tiempos de cambio. Es importante que tenga esto en cuenta mientras damos un vistazo rápido a las opciones de marcos ágiles, que se conocen con diferentes nombres y que, generalmente, varían de una implementación a otra.

 

Marcos ágiles

Los marcos ágiles para el desarrollo de software (como Scrum, kanban o programación extrema [XP]) son la base de procesos conocidos de desarrollo de software, como DevOps y la integración continua/implementación continua (CI/CD).

Scrum es probablemente el marco ágil que más se utiliza en la actualidad. Sin embargo, no es la única alternativa dentro del mundo ágil y, para ser sinceros, no todos sus aspectos pueden caracterizarse como ágiles. Este marco de gestión de trabajos se diseñó para equipos pequeños e interdisciplinarios de entre 5 y 9 personas, los cuales dividen su trabajo en acciones que se puedan completar en un período de tiempo uniforme denominado "sprint". Los equipos de Scrum están formados por los miembros, un facilitador y el dueño de un producto. Por lo general, este marco de trabajo se implementa cuando un proyecto grande se puede dividir en sprints de dos a cuatro semanas. Además, se centra en ciclos de retroalimentación mediante reuniones donde se realiza una "retrospectiva" del sprint. Su lema no oficial bien podría ser "analice todo y adáptese".

Hay otros marcos ágiles, como kanban, que son anteriores al manifiesto. Sin embargo, se consideran ágiles porque promueven los valores que se detallan en él. Son muchos los marcos y los enfoques ágiles que permiten adaptar este tipo de metodología, y sería difícil enumerarlos a todos.