Jump to section

¿Qué es la metodología ágil?

Copiar URL

Red Hat User Group en Latinoamérica

Llegó Red Hat User Group Community a Latinoamérica. Nos reunimos para tener conversaciones técnicas, compartir experiencias y casos de uso en un ambiente cercano y distendido.

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 pequeñas piezas de software en funcionamiento para aumentar 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 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.

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 los cuales 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 para el desarrollo de software y describieron cuatro características fundamentales que deberían priorizarse por encima de otras cuestiones. De acuerdo con lo que establecieron, los equipos de desarrollo ágil de software debí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. 

Open Technology Sessions en español

Explora esta serie de webinars on-demand y descubre cómo impulsar la innovación tecnológica en tu organización. ¡Aprende más sobre automatización, infraestructura, plataforma de aplicaciones, cloud services y mucho más!

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 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.

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 pueden 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.

Artículos relacionados

ARTÍCULO

¿Qué es DevSecOps?

Si desea aprovechar al máximo la agilidad y la capacidad de respuesta de los enfoques de DevOps, la seguridad de la TI debe desempeñar un papel principal en todo el ciclo de vida de sus aplicaciones.

ARTÍCULO

¿Qué son la integración/distribución continuas (CI/CD)?

La integración y la distribución continuas (CI/CD) incorporan la automatización y la supervisión permanentes en todo el ciclo de vida de las aplicaciones, desde las etapas de integración y prueba hasta las de distribución e implementación.

ARTÍCULO

¿Qué hace un ingeniero de DevOps?

Un ingeniero de DevOps es alguien que posee una combinación única de habilidades y experiencia que permite la colaboración, la innovación y los cambios culturales dentro de una empresa.  

Más información sobre DevOps

Productos

Servicio de nuestros asesores estratégicos, quienes tienen una visión amplia de su empresa, analizan sus desafíos y lo ayudan a superarlos con soluciones completas y rentables.

Contenido adicional

Whitepaper

Optimice los canales de CI/CD con Red Hat Ansible Automation Platform

Podcast

Command Line Heroes Temporada 1, Episodio 4:

DevOps derriba ese muro

Escúchalo ya