20 Enero 2021

Agile Vs Waterfall. ¿Cuál es la mejor metodología?

por Anna Torres

Descubre las ventajas y diferencias entre las metodologías de desarrollo de software.

Los primeros en adoptar el desarrollo agile fueron equipos pequeños e independientes que trabajaban en proyectos pequeños, demostrando que el modelo ágil puede funcionar.

Las organizaciones más grandes están escalando de manera ágil más allá de los equipos o proyectos individuales, y buscan formas de aplicarlo a proyectos completos.

El viaje no está exento de desafíos. ¡Pero eso no significa que no se pueda hacer!

Metodologías: Waterfall Vs Agile

Los estilos tradicionales de gestión de proyectos, como la cascada (Waterfall), se construyen en fases. A continuación se muestra una ilustración de un proyecto de cascada estándar.

Desarollo - El metodo a cascada waterfall

Este estilo de desarrollo de productos reúne todo en una única versión de alto riesgo. Una vez que un proyecto pasa una fase, es doloroso revisarlo porque los equipos siempre están avanzando hacia la siguiente etapa.

Desarollo - Ventajas de la metodología agile

Los estilos tradicionales de gestión de proyectos a menudo crean “rutas críticas”, donde el proyecto no puede avanzar hasta que se resuelva un problema de bloqueo. Para colmo de males, el cliente final no puede interactuar con el producto hasta que esté completamente completo. Por lo tanto, los problemas importantes en el diseño y el código del producto no se descubren hasta el lanzamiento.

¿Qué hace que Agile sea diferente?

Comparemos eso con un estilo de gestión de proyectos Agile, que adopta un enfoque iterativo del desarrollo con intervalos de retroalimentación regulares. Estas iteraciones permiten que el equipo sea más productivo, pudiendo desviarse en otra área del proyecto mientras se resuelve un problema de bloqueo.

Además de eliminar las rutas críticas, las iteraciones le permiten interactuar con el producto durante el desarrollo.

Esto, a su vez, le brinda al equipo oportunidades constantes para construir, entregar, aprender y adaptarse. Los cambios del mercado no va a dejar sorprendidos los equipos que estarán preparados para adaptarse rápidamente a los nuevos requisitos.

Un beneficio aún mayor son los conjuntos de habilidades compartidos entre el equipo de software. Los conjuntos de habilidades del equipo añaden flexibilidad al trabajo en todas las partes del código base del equipo. De esta forma, no se pierde tiempo ni trabajo si cambia la dirección del proyecto.

Cómo construir una óptima gestión de proyectos ágil

Cuando un proyecto o desarrollo de producto pasa de la gestión de proyectos tradicional a la ágil, el equipo y las partes interesadas deben adoptar dos conceptos importantes:

  • El enfoque del propietario del producto es optimizar el valor de la producción del equipo de desarrollo. El equipo de desarrollo confía en que el propietario del producto priorice primero el trabajo más importante.
  • El equipo de desarrollo solo puede aceptar trabajos si tiene capacidad para ello. El propietario del producto no es quien deriva el trabajo al equipo ni lo compromete con plazos arbitrarios. El equipo de desarrollo es el que va extrayendo de la pila de tareas todo lo que está pendiente según pueda ir aceptando nuevos trabajos.

Exploremos los mecanismos ágiles para organizar, ejecutar y estructurar el trabajo de forma iterativa.

Hojas de ruta (Roadmap)

Una hoja de ruta describe cómo se desarrolla un producto o una solución a lo largo del tiempo.

Los mapas de ruta se componen de iniciativas, que son grandes áreas de funcionalidad e incluyen líneas de tiempo que nos permiten saber cuando estará disponible una funcionalidad o característica. A medida que se desarrolla el se acepta que la hoja de ruta cambiará, a veces de manera sutil, a veces de manera general.

El objetivo es mantener la hoja de ruta centrada en las condiciones actuales del mercado y los objetivos a largo plazo.

Requisitos

Cada iniciativa de la hoja de ruta se divide en un conjunto de requisitos.

Los requisitos ágiles son descripciones muy breves de la funcionalidad requerida, en lugar de los documentos de 100 páginas asociados con los proyectos tradicionales.

Evolucionan con el tiempo y aprovechan la comprensión compartida del equipo sobre el cliente y el producto deseado.

Los requisitos ágiles se reducen mientras que todos los miembros del equipo desarrollan un entendimiento compartido a través de la conversación y la colaboración continuas. Solo cuando la implementación está a punto de comenzar, se completan con todos los detalles.

Pila de tareas (Backlog)

La pila de tareas o backlog establece las prioridades cuando trabajamos de manera ágil. El equipo incluye todos los elementos de trabajo en el backlog: nuevas funciones, errores, mejoras, tareas técnicas o refactorización, arquitectura, etc.

El propietario del producto prioriza el trabajo de la pila de tareas y luego, el equipo de desarrollo utiliza el trabajo pendiente priorizado como su única fuente de información sobre el trabajo que se debe realizar.

Métricas ágiles

Los límites sobre el trabajo que puede estar en progreso (WIP) mantienen al equipo y al negocio enfocados en entregar el trabajo de mayor prioridad.

Distintos tipos de gráficas (Burndown, Burnout,…) ayudan al equipo a predecir su velocidad de entrega, y los diagramas de flujo continuo ayudan a identificar los cuellos de botella.

Estas métricas mantienen a todos enfocados en los grandes objetivos y aumentan la confianza en la capacidad del equipo para realizar trabajos futuros.

Agile se basa también en la confianza

El desarrollo ágil no puede funcionar sin un alto nivel de confianza entre los miembros del equipo.

Requiere humildad, franqueza y confianza, ya que a menudo se tienen conversaciones difíciles sobre lo que es correcto para el producto. Debido a que las conversaciones ocurren a intervalos regulares, las ideas y preocupaciones se expresan muy a menudo. Eso significa que los miembros del equipo también deben confiar en la capacidad (y disposición) de los demás para ejecutar las decisiones tomadas durante esas conversaciones.

En resumen, el desarrollo ágil es un enfoque estructurado e iterativo para hacer software. Brinda la capacidad de responder al cambio sin salirse del camino principal. Y desde luego, esa es una buena noticia para cualquier proyecto o desarrollo de producto.

(Fuente: Atlassian Blog)




¿Necesitas ayuda con tu proyecto?

Si quiere mejorar tu flujo de trabajo, contactanos sin compromiso y te responderemos en menos de 24 horas.


excentia se compromete a respetar tu privacidad, y solo usaremos tu información para proporcionar productos, servicios y contenido que pueda ser de interés para ti.

Comparte en     Suscríbete