Saltar al contenido
EconomíaTIC

Metodología Agile: Guía completa

Origen de la metodología Agile

La historia relacionada con la aparición de la metodología Agile puede rastrearse hasta finales de los años 50s (gestión de proyectos evolutiva) y a principios de los 70s (desarrollo adaptado de software). Sin embargo, la verdadera innovación en este campo llegó durante la década de los 90’s, en medio de la crisis de desarrollo de aplicaciones.

metodología agile

Como la implementación de una solución informática empresarial requería al menos 3 años, este plazo no correspondía con las necesidades crecientes de la industria. Esta preocupación dio origen a lo que se denominó como desarrollos de software lightweight (ligero) en respuesta a los métodos heavyweight (pesado), que eran demasiado regulados, micro gestionados y planeados.

Ante la necesidad de mayor rapidez y flexibilidad para la gestión de proyectos, fue así que aparecieron otros métodos. Entre los más destacados, están:

  • El RAD (Desarrollo Rápido de Aplicaciones) de 1991.
  • El Proceso Unificado o UP (1994).
  • El DSDM (Método de Desarrollo de Sistemas Dinámicos) de 1994.
  • El SCRUM de 1995.
  • El Extreme Programming (XP) de 1996.
  • El Crystal Clear (1996).
  • El FDD (Desarrollo Basado en Características) de 1997.

Esto ocurría antes de la aparición del Manifiesto Ágil, que vendría unos años después. Mientras que estos sistemas fueron catalogados bajo la premisa de la metodología Ágil, ocurrían cambios similares en la industria aeroespacial y de manufactura. Fue en 2001, durante una reunión en un complejo turístico de Snowbird (UT), que 17 desarrolladores darían forma a lo que hoy se conoce como el Manifesto for Agile Software Development.

A partir de ese momento, acontecieron otros hechos importantes que permitieron consolidar el desarrollo de software bajo esta filosofía:

  • La publicación en 2005 del addendum sobre los principios de la gestión de proyectos, conocida como Declaración de Independencia PM. Es un texto que sirve de guía a directores de programación para trabajar con la estructura Agile.
  • La publicación de una extensión (2009) relacionada con los principios del desarrollo de software (Software Craftsmanship Manifesto) para orientar la programación en función del profesionalismo y la maestría.
  • En 2011, la Agile Alliance dio forma a la Guía de Prácticas Ágiles, un compendio open-source de evolución continua. Renombrado en 2016 como Glosario Ágil, este escrito contiene definiciones de términos, elementos, interpretaciones y orientaciones de quienes utilizan este método.

¿Qué es la metodología Agile y para qué sirve?

La metodología Agile (o meodología ágil en español) es una forma de llevar a cabo el proceso de gestión de proyectos bajo el entorno del desarrollo de software. En este ámbito, las soluciones y exigencias evolucionan por medio del esfuerzo conjunto entre equipos de trabajo auto-organizados y multifuncionales y los clientes.

Producto del Agile Manifesto, la puesta en práctica de esta filosofía viene a superar las carencias que presentan los sistemas tradicionales, como el método en cascada. Dado que la industria del software es un mercado altamente competitivo, los desarrolladores deben disponer de mucha adaptación, rapidez y flexibilidad para generar innovaciones. Esta actualización continua de productos requiere una implementación que vaya más allá del enfoque lineal y secuencial.

Diferencia entre metodologías agile y las tradicionales como el modelo en cascada (waterfall)

Cuando diferenciamos las prácticas ágiles con el método Waterfall (cascada en español), encontramos 2 diferencias sustanciales:

El desarrollo de software en cascada segmenta el proyecto en varias etapas SDLC (Ciclo de vida del desarrollo de programas). Se tiene que completar una fase para luego pasar a la siguiente.

Existe un enfoque distinto en lo que se refiere a las pruebas y la gestión de calidad. Con el método Waterfall, primero hay una etapa de estructuración y luego una de ensayo. En cambio, con el sistema ágil tanto la programación como la prueba ocurren en una misma iteración.

El propósito de las iteraciones cortas consiste en tener una perspectiva que favorece más al producto que al proyecto. Esta conexión con el concepto de lean startup proporciona una mayor capacidad de pivotar durante el proceso de desarrollo. Además, permite una evolución del producto en función de las exigencias del mercado y los requisitos empresariales.

En contraste con un proyecto fijo que no se puede modificar a medida que se avanza, las pruebas en cada iteración sirven para validar el valor. La actualización del programa por partes facilita que los usuarios tomen mejores decisiones sobre cómo será el resultado final. Esta replaneación y retrospectiva ayuda a la adaptación de los equipos de trabajo para maximizar el valor. Esto se hace mediante el patrón PDAC: planeado, hecho, chequeado y, según los cambios, actuar de conformidad.

Los 4 valores del Manifiesto Ágil

El Manifiesto Ágil representa una declaración que incluye 4 valores fundamentales y 12 principios sobre los cuales están sustentadas las prácticas de la metodología Agile. Su función principal es encaminarte para que puedas descubrir mejores formas de desarrollar software. Por eso te da una estructura clara y medible que promueve el trabajo en equipo, la iteración y el reconocimiento del cambio.

Los 4 valores de Manifiesto Ágil son:

  • Personas e interacciones por encima de herramientas y procesos

Este enunciado hace referencia a la importancia que tiene el personal del equipo de trabajo para dar los resultados esperados. Los individuos capacitados, enfocados y con actitud positiva son los responsables de la culminación exitosa de un proyecto. En cambio, los procesos sirven como guía y las herramientas se emplean para mejorar la eficiencia.

No es un misterio que el siglo pasado las organizaciones comenzaron a dar más reconocimiento a los procesos que a la experiencia, talento y capacidad de los colaboradores. Esto propone la idea de que se puede alcanzar logros sin precedentes con un staff mediocre. En función de la creatividad e innovación, los procesos deben ser diseñados para fortalecer al negocio, aprovechar la tecnología y orientar al personal.

  • Programas funcionales por encima de la documentación detallada

Este valor encierra la relevancia que tiene para las empresas la capacidad de ver de antemano las funcionalidades de prototipos o partes de un producto final. Esta condición de retroalimentación permite la gestación de ideas que no parecían factibles inicialmente. Este nivel de detalle no se puede lograr a través de un documento al empezar un proyecto.

La documentación solamente es necesaria para registrar, transferir conocimiento y cumplir la ley. En lo que respecta a la generación de valor del producto, el papeleo no debería interferir en la interacción con los prototipos y la comunicación entre empleados. Por eso tiene que usarse en lo mínimo requerido para dejar que la organización y el personal tengan mayor integración con el sistema.

  • Colaboración con clientes por encima de negociaciones contractuales

Los acuerdos son documentos legales que establecen derechos y responsabilidades entre las partes, pero que no aportan valor. Implementando el modelo ágil, se busca un resultado exitoso mediante la intervención directa con el producto. En este caso, las consecuencias de la generación de valor no están sujetas al control de procesos.

Por este motivo, las prácticas ágiles están especialmente diseñadas para aquellos proyectos que no exigen un elevado nivel de detalle inicial. También son utilizadas para situaciones en que los requerimientos cambiarán mucho por la rapidez con que opera el negocio. En sí, se trata de promover un feedback continuo durante la etapa de desarrollo para optimizar los resultados.

  • Respuesta al cambio por encima de seguir un plan

Esta idea pretende darle más importancia a la capacidad de respuesta del trabajo en equipo durante la gestión de proyectos. La metodología Agile se nutre de habilidades como la anticipación y adaptación que difieren de la planificación tradicional que se rige por evitar la desviación del plan establecido.

Este principio deriva de que el desarrollo de software se maneja en contextos que cambian rápidamente y requieren un ajuste continuo a las necesidades que surjan.

¿Cuáles son los 12 principios del Manifiesto agile?

Con la intención de complementar los 4 valores básicos, te presentamos los 12 principios del Manifiesto Agile:

  • Mantener la simplicidad.
  • Facilitar las interacciones cara a cara.
  • Entregar de manera constante software operativo.
  • Hacer reflexiones frecuentes sobre cómo ser más efectivos.
  • Atender los detalles técnicos y el diseño para mejorar la agilidad.
  • Saber que los equipos auto-organizados fomentan buenas arquitecturas, diseños y requerimientos.
  • Impulsar la satisfacción del cliente mediante la entrega temprana y continuada de software.
  • Implementar procesos ágiles para procurar un ritmo de desarrollo consistente.
  • Entender que el software que funciona es la medida primordial de avance.
  • Apoyar, motivar y confiar en las personas involucradas con el proyecto.
  • Acomodar los requisitos cambiantes a través del proceso de desarrollo.
  • Impulsar la colaboración entre los accionistas y los desarrolladores.

¿Por qué y cuándo usar agile en una empresa?

Podemos establecer que la razón principal para implementar las prácticas ágiles tiene que ver con hallar el producto correcto según las circunstancias del mercado. En vez de comercializar un software antes de hacerlo, se busca optimizarlo a la par de su lanzamiento. Así puede ser lo más competitivo posible en la medida que vaya ajustándose a las necesidades de los usuarios.

Las técnicas ágiles pueden ser usadas tanto para proyectos de desarrollo de software, como para la creación de otros productos, como ordenadores, coches, música y más. Su aplicación va depender de cómo la organización quiere simplificar los procesos para conseguir mejores resultados. Puede implementarse en una empresa mediante la gestión de negocios, atendiendo aspectos como riesgo, estrategia, gobernanza, finanzas y más.

Como ejemplo de la puesta en práctica de las metodologías de gestión de proyectos, podemos mencionar a IBM. Esta megacorporación es una de las que reconoce la aplicación del Manifiesto Agile. Ellos alegan que les ha servido para ejecutar cambios organizacionales importantes.

Además de aumentar sus probabilidades de éxito, entiende que la orientación crítica para los equipos de trabajo minimizan los problemas relacionados con adopción, implementación y expansión de un producto.

Importancia de la metodología agile para el desarrollo de software y la gestión de proyectos

A medida que la transformación digital y los modelos de negocios enfocados en el cliente se afianzan habrá más necesidad de incorporar la metodología ágil. Esto se debe a que les permite a las empresas entregar productos/servicios con menores costes, en plazos más cortos y con una gestión de calidad mucho más depurada.

Estas prácticas están diseñadas para el desarrollo de proyectos que requieren rapidez y flexibilidad en el cumplimiento de las necesidades de clientes. Ya que están enfocadas en los resultados, las compañías pueden gestionar sus objetivos con mayor nivel de adaptación, eficacia y autonomía, lo que también se refleja en el aumento de la productividad.

Estas metodologías de gestión de proyectos son capaces de elevar la productividad un 300%. Debido a sus valores y principios, el sistema Scrum ha sido uno de los que más aceptación ha encontrado en el mundo de los negocios. El énfasis en el talento, la interacción entre los equipos y la comunicación con el cliente, son esenciales para afrontar los retos y cambios que presentan los nuevos mercados.

¿Cuáles son las ventajas y desventajas de la metodología agile?

La metodología ágil surge como un cambio de paradigma que vino a sustituir una estructura más pesada por otra más ligera para el desarrollo de software. Presentada como una solución más rápida y flexible que los métodos tradicionales, pretende superar las limitaciones del pasado. Esto ha hecho que su adopción esté ampliamente aceptada en la industria.

Entre sus ventajas principales, podemos mencionar:

Es un método iterativo, incremental y evolutivo

Dentro de la filosofía ágil, los métodos están diseñados para que el desarrollo del producto se haga mediante pequeños avances que minimizan la planeación y diseño previos. Las iteraciones o sprints hacen referencia a cortos períodos de tiempo que suelen durar de 1 a 4 semanas.

En estas iteraciones trabajan equipos multifuncionales en diferentes áreas, como:

  • planeación
  • diseño
  • análisis
  • codificación
  • pruebas del producto
  • pruebas de aceptación

Cuando termina período de tiempo asignado, el equipo de trabajo les muestra una versión funcional a los accionistas de la empresa. Esto tiene como finalidad reducir el riesgo general y permitir una adaptación más rápida a los cambios exigidos.

Es posible que un sprint no aporte la suficiente funcionalidad como para un lanzamiento al mercado, pero la idea es sacar una versión con la menor cantidad de errores (bugs).  El progreso está en la disposición de un software funcional.

Comunicación cara a cara más eficiente

Dentro de las prácticas ágiles, se utiliza la coubicación para que los colaboradores de un mismo equipo trabajen juntos, permitiendo mejorar su comunicación. Esto se hace para reducir los tiempos del ciclo que toma responder preguntas a través del chat, correo o teléfono. En cambio, favorece una interacción directa e idealmente frente a una pizarra.

Sin importar el método que se use (Kanban, Scrum, XP, etc.), cada equipo debe contar con un representante del cliente. Elegido por los accionistas, su función consiste en estar disponible para responder preguntas durante cada iteración.

Al final de cada fase, el representante y los accionistas revisan el progreso y revalúan las prioridades con el fin de optimizar el ROI para satisfacer las necesidades del usuario final.

Enfoque basado en la calidad

La metodología agile cuenta con una serie de herramientas y técnicas específicas para asegurar la calidad y promover un desarrollo más ágil. Entre las más utilizadas, destacan la prueba automatizada de la unidad, diseño de patrones, refactorización del código, desarrollo basado en comportamiento, diseño basado en dominio, entre otras. Así se favorece la calidad desde el comienzo y se puede demostrar la funcionalidad del software en cualquier punto o al final de cada sprint.

Ciclos cortos de adaptación y retroalimentación

El desarrollo de software ágil se distingue por tener una reunión (stand-up) diaria, también conocidos como scrum. Representa una sesión corta en la cual los miembros del equipo se informan entre sí sobre lo que hicieron el día anterior en función del objetivo de la iteración. También mencionan cualquier obstáculo que podría existir y lo que planean hacer ese día para acercarse más a la meta.

Mientras que las prácticas ágiles favorecen la productividad y están muy relacionadas con el lean startup, no carecen de dificultades. Debido a la complejidad del desarrollo de software, las desventajas más frecuentes son:

  • Poco apoyo del patrocinador. Con frecuencia esta metodología de gestión de proyectos son iniciativas base de equipos informáticos que buscan optimizar sus procesos y asegurar la consistencia del ciclo de vida del software. Si no cuentan con patrocinio, podrían experimentar falta de fondos, problemas con los socios de negocios o la gerencia y la posibilidad de fracaso.
  • Equipos de trabajo sin enfoque. En las prácticas ágiles, los equipos deben estar comprometidos con los plazos asignados a un producto, lo cual significa poner toda su atención en dicho proyecto. No obstante, los miembros más diligentes suelen ser asignados a otras tareas. Esto les complica enfocarse y ayudar a completar su compromiso principal.
  • Mala asignación del dueño del software. El denominado propietario del software es el cargo más demandante y representa al negocio durante el desarrollo. A veces, se comete el error de asignar a un miembro del equipo de desarrollo para esta función. Esto implica que el team debe priorizar sus decisiones sin la retroalimentación de la empresa. Como tienen que buscar una dirección exterior, esto deteriora la colaboración y provoca distracciones.
  • Exceso de planificación o preparación. Resulta habitual que los equipos de trabajo inviertan demasiado tiempo en estas actividades. Suele ocurrir con desarrolladores que no están familiarizados con la metodología agile y se sienten obligados a entender los detalles de cada historia de usuario. Los equipos deberían abordar primero las stories para las cuales están preparados y seguir investigando durante la iteración para hacer las modificaciones en los sprints siguientes.
  • Entrenamiento insuficiente. Hay estudios que indican que una de las causas principales del fracaso en la implementación ágil tiene que ver con la falta de entrenamiento. Con frecuencia, los equipos asumen erróneamente que como este método tiene menos procesos que otros (Waterfall), significa que no tiene reglas.

Diferencias entre Agile, Scrum, Kanban y otras metodologías

Para hacer esta diferenciación, tenemos que aclarar que el Manifiesto Agile es una filosofía que enmarca varios sistemas de trabajo, como el Scrum, Kaban, XP, Lean Startup, FDD, ASD, DSDM, RAD y otros más. Los valores y principios derivados de esta declaración son los que rigen las prácticas ágiles en estas formas de trabajar y gestionar proyectos.

Scrum

Creado por Ken Schwaber y Jeff Sutherland (participantes del manifiesto), este framework se basa en 5 valores básicos: compromiso, coraje, respeto, apertura y enfoque. Lo que este sistema se diferencia de otros lo vemos en las tareas, eventos y roles que lo integran.

Empezando por las tareas, tenemos:

  • Backlog (tareas pendientes) del producto. Gestionado por el dueño del producto, contiene la lista de prioridades de todos los requisitos para obtener un producto viable. Incluye todas las características, funciones, mejoras, requerimientos y arreglos que autoriza los cambios en versiones posteriores.
  • Backlog del sprint. Se trata de una lista de tareas que deben ejecutarse para la próxima iteración. Puede acompañarse con una pizarra para visualizar el progreso actual y los cambios se hacen mediante el formato To Do, Doing y Done (por hacer, haciendo y listo).

En los roles del equipo hay:

  • Scrum master. Es el que se encarga de hacer entender y controlar la ejecución del Scrum.
  • Product owner (dueño del producto). Es un experto en productos que representa a los accionistas y sirve como la voz del cliente.
  • Equipo de desarrollo. Es el grupo de profesionales que hacen posible el producto: programadores, diseñadores, desarrolladores, etc.

Con relación a los eventos, encuentras:

  • Sprint o iteración. Son renglones de tiempo (timeboxes) iterativos para lograr un objetivo. El plazo no suele superar el mes y deben ser consistente durante todo el proceso.
  • Planificación del sprint. Es cuando todo el equipo de trabajo se reúne para planear la próxima iteración.
  • Reunión diaria (scrum). Es una reunión con un renglón de tiempo de 15 min que se realiza siempre a la misma hora y cada día del sprint. Se discuten las incidencias del día previo y las expectativas para el día siguiente.
  • Revisión de la iteración. Se trata de un encuentro informal al final del sprint en el cual el equipo muestra sus avances a los accionistas y obtienen retroalimentación.
  • Retrospectiva del sprint. Es otra reunión en la que los colaboradores reflexionan sobre la iteración recién terminada y establecen las mejoras para la siguiente.

Kanban

Kanban es una metodología ágil muy visual que favorece la visualización del flujo de trabajo. Tiene la finalidad de entregar la mayor calidad con respecto al servicio o producto mediante la identificación temprana de los cuellos de botella para corregir cualquier falla.

Fue un framework desarrollado por Toyota en los años 40s y posee 6 prácticas generales:

  • Visualización
  • Manejo del flujo
  • Creación de políticas concretas
  • Limitación del trabajo en progreso
  • Evolución colaborativa o experimental
  • Uso de los bucles de retroalimentación

Entre sus recursos más utilizados, destacan:

Las tarjetas Kanban. Son tarjetas que señalan una tarea dentro del proceso. Son empleadas para mejorar la comunicación, ya que incluyen datos como: estatus, tiempo del ciclo y las fechas de entrega que vienen.

El tablero Kanban. Es una herramienta de manejo visual para detallar el proceso de desarrollo. Puede tratarse de un elemento virtual o físico, como una pizarra blanca, marcadores o notas. Sirve para uso profesional o para la productividad personal.

Los carriles (swimlanes) Kaban. Se trata de elementos visuales sobre el tablero que te permiten distinguir con más precisión una tarea mediante la categorización. Tienen una orientación horizontal y proporcionan un mejor entendimiento del flujo de trabajo.

XP

La metodología ágil del framework XP está pensada para promover una mejor calidad de vida para los equipos de trabajo y también un producto de mayor calidad. Se fundamenta en 5 valores: respeto, feedback, valentía, comunicación y simplicidad. Se apoya en prácticas de ingeniería, que podemos resumir así:

  • Pruebas
  • Metáforas
  • Diseño simple
  • Refactorización
  • Integración continua
  • Estándar de codificación
  • Programación en parejas
  • El juego de planificación
  • Propiedad colaborativa
  • Semana de 40 horas
  • Cliente en el sitio

Metodología Agile: cursos y certificaciones

Si estás pensando en incorporar la filosofía ágil en tu negocio, puedes recurrir a diversas fuentes para adquirir estos conocimientos u obtener tu certificación. Hay toda clases de organizaciones, fundaciones y portales online para aprender sobre estos métodos de forma paga o gratuita. Udemy o edX son buenas alternativas.

Te recomendamos los siguiented cursos ofrecidos por Udemy:

Conclusiones

Hemos visto que las metodologías de gestión de proyectos basadas en el Manifiesto Agile contribuyen a implementar procesos más flexibles y rápidos para el desarrollo de software. Asimismo, esta filosofía puede ser integrada a otros emprendimientos que valoran el trabajo en equipo efectivo, la colaboración con el cliente y los resultados de calidad.

Las prácticas ágiles pueden presentar diversos problemas con cierto tipo de proyectos y ser ineficientes cuando hablamos de grandes organizaciones. A pesar de su amplia aceptación dentro de la industria y de proporcionar una línea de ataque no lineal, algunos alegan que los equipos de trabajo que profesan esta mentalidad, simplemente han abandonado valores tradicionales sin internalizar los principios del Manifiesto Ágil.


Artículo ecrito por: Hector Fernandez

Hector Fernandez
Héctor Fernández es un canario residente en Berlín desde 2013. Licenciado en Económicas y experto en SEO y Marketing de Contenidos. Nómada digital a tiempo parcial :-D Como co-fundador de Economía TIC, mi misión es que mantengas la mente despierta y la curiosidad por aprender ¡Espero que disfrutes! >Descubre más sobre los autores de Economía TIC