Waterfall vs Agile

team

Cuando escuchamos hablar de estos dos términos, nuestra mente nos lleva directamente a la gestión de proyectos y podemos llegar a caer en el error, y es que muchos no conocen realmente las diferencias entre estas formas de trabajo.

Las personas que no nos encontramos dentro de los proyectos vemos desde fuera que, trabajando bajo metodología Waterfall, no  llegamos a conocer toda la situación de los proyectos; y trabajando con Agile, vemos a los equipos con un tablero, muchos post-its y una reunión por las mañanas.

Por tanto, para comenzar a trabajar en cada una de las dos metodologías, debemos entender cómo es cada una de estas formas de trabajo y cómo funcionan.

Waterfall

Es la forma tradicional de gestión de proyectos. Posee una estructura con un orden estricto conformado por las siguientes fases: inicio, planificación, ejecución, seguimiento y control, y cierre.

1

Se tienen roles definidos jerárquicamente, encontrándonos al jefe de proyectos como máxima autoridad y, por debajo, a los analistas, desarrolladores, testers, QA, etc.

JefeProyecto-1

En este tipo de proyectos, cabe resaltar que las fases deben completarse al 100% antes de poder ejecutar la siguiente fase. Los proyectos basados en esta metodología suelen seguir un cronograma plasmado en el Project con fechas para cada fase, como podemos ver en el siguiente ejemplo:

 3-3

 

Ventajas de waterfall

  • Facilidad para llevar el seguimiento y control de lo que se está desarrollando (porcentaje de cumplimiento).
  • Cada fase tiene resultados específicos.
  • Útil para gestionar dependencias.
  • Permite la estimación de calendarios y presupuestos con mayor precisión.
  • El cliente sabe que lo que va a recibir una vez finalice el proyecto, desde la fase de inicio, o con los cambios que se hayan podido incluir mediante una gestión de cambios.
  • El proceso y los entregables exigen un nivel de documentación.

 

Desventajas de waterfall

  • Una vez cerrada la fase de requerimientos, cuesta aceptar un nuevo requerimiento y éste se convierte en una gestión de cambio que afecta al tiempo y coste del proyecto.
  • Resulta difícil responder de forma inmediata a los problemas que puedan surgir.
  • Si los requisitos no están claros desde un principio, resulta una metodología poco efectiva.
  • Las pruebas se inician al finalizar el desarrollo, con lo cual existe una gran probabilidad de encontrar errores y tener que volver a la fase de desarrollo, retrasando así el proyecto.

 

Agile

Puede considerarse como la nueva forma de gestionar los proyectos. Se basa en una forma de trabajo colaborativa: las fases del proyecto se realizan con todos los actores involucrados desde el inicio del proyecto; y se gestiona en base a entregables. Se trata de una práctica que admite la repetición continua de desarrollo y pruebas durante el proceso de desarrollo de software.

Agile

 

  1. Características de las metodologías ágiles

  • Equipos multifuncionales.
  • Pequeñas iteraciones.
  • Enfoque incremental.
  • Prioridades del negocio y valor del cliente.
  • Mejora continua.

    2. Valores del manifiesto Agile

5

  3. Métodos Agiles

metodosAgile-1

 

Dentro de agile se encuentra SCRUM, que es el modelo más utilizado por las empresas actualmente y en el cual entraremos en detalle.

Es una metodología de adaptación, iterativa, rápida, flexible y eficaz, diseñada para ofrecer un valor significativo de forma rápida en todo el proyecto. Scrum garantiza transparencia en la comunicación y crea un ambiente de responsabilidad colectiva y de progreso continuo.

El marco de Scrum, tal como se define en la Guía SBOKTM, está estructurado de tal manera que es compatible con los productos y el desarrollo de servicio en todo tipo de industrias y en cualquier tipo de proyecto, independientemente de su complejidad. Una fortaleza clave de Scrum radica en el uso de equipos multifuncionales, autoorganizados y con poder, que dividen su trabajo en ciclos de trabajo cortos y concentrados llamados Sprints.

Por tanto, en los proyectos Scrum:

  • Se define la necesidad del negocio.
  • Se priorizan los requerimientos.
  • Se genera el backlog a trabajar en el sprint.
  • Se tienen reuniones de seguimiento y avance del desarrollo.
  • Se generan los entregables del sprint.

FlujoScrum

4.  Marco de Trabajo Scrum

Scrum se basa en 6 principios, 19 procesos y aspectos generales propios de esta metodología.

 

8-1

  • Principios Scrum

SCRUM, como uno de los marcos de trabajo ágiles más populares, tiene como base 6 principios que9-1 orientan la gestión de un proyecto a lo largo de todas sus fases.

Los principios de SCRUM no son negociables porque su propósito es asegurar la implementación efectiva del marco de trabajo. Tanto los aspectos de SCRUM como los procesos de este framework pueden ser adaptados, o modificados, en base a la naturaleza y tipo de proyecto, mientras que principios de SCRUM son fijos.

 

 

  • Procesos Scrum

Los procesos de Scrum abordan las actividades y el flujo específico de un proyecto. En total, hay diecinueve procesos que se agrupan en cinco fases.

10

  • Aspectos Scrum
  1. Roles

Existen dos tipos de roles en un proyecto Scrum:

a) Roles Core

Son aquellos papeles que obligatoriamente se requieren para producir el producto o servicio del proyecto. Las personas a quienes se les asignan Core Roles están plenamente comprometidas con el proyecto y son las responsables del éxito de éste.

Roles-1

b) Roles No Core

Papeles que no son obligatoriamente necesarios para el proyecto Scrum. No tienen ningún papel formal en el equipo y pueden interactuar con él, pero no pueden ser responsables del éxito del proyecto.

  • Stakeholders
  • Cuerpo de asesoramiento de Scrum
  • Proveedores
 
  1. Justificación del Negocio

Scrum intenta iniciar la entrega de los resultados lo antes posible en el proyecto, esta entrega temprana de los resultados proporciona una oportunidad para la reinversión y les demuestra el valor del proyecto a los socios.

 

  1. Calidad

Dado que Scrum requiere que el trabajo se realice en incrementos durante los Sprints, ésto hace que los errores o defectos sean notados con más facilidad a través de pruebas de calidad (quality) repetitivas, y no simplemente cuando el producto final o servicio esté casi terminado. Por otra parte, las tareas relacionadas con la calidad (como las pruebas y su documentación) se completan por el mismo equipo como parte del mismo Sprint. Ésto asegura que la calidad sea inherente a cualquier entregable creado como parte de un Sprint.

 

  1. Cambio

Los proyectos Scrum le dan la bienvenida a los cambios mediante el uso de los Sprints cortos y repetitivos, que incorporan la retroalimentación del cliente en cada entrega del Sprint. Esto permite que el cliente interactúe regularmente con los miembros del Equipo Scrum, vea entregables a medida que estén listos y cambie los requisitos, si es necesario, antes del siguiente Sprint.

 

  1. Riesgo

A los riesgos que pueden tener un impacto positivo en el proyecto se los conoce como Opportunities, mientras que las amenazas son riesgos que podrían afectar al proyecto de una manera negativa. La gestión del riesgo debe hacerse de forma preventiva, siendo un proceso iterativo que debe comenzar al inicio del proyecto y continuar a lo largo todo el ciclo de vida. El proceso de gestión de riesgos debe seguir algunos pasos estandarizados para asegurar que los riesgos sean identificados y evaluados. Además se debe tener un plan de acción determinado y velar para que se actúe en consecuencia.

 

Ventajas de Scrum

  • Adaptabilidad—El control del proceso empírico y Desarrollo iterativo hacen que los proyectos sean adaptables y abiertos a la incorporación del cambio.
  • Transparencia—Todos los indicadores de información tal como un Scrumboard y Sprint Burndown Chart son compartidos, lo que lleva a un ambiente de trabajo abierto.
  • Retroalimentación Continua—Se proporciona a través de los procesos llamados Llevar a cabo el Standup diario y Demostración y validación del Sprint.
  • Continuous Improvement—Los entregables se mejoran progresivamente Sprint por Sprint a través del proceso Mantenimiento de la lista priorizada de pendientes del producto.
  • Entrega Continúa de Valor—los procesos iterativos permiten la entrega continua de valor tan frecuentemente como el cliente lo requiere a través del proceso Ship Deliverable.
  • Entrega Anticipada de Alto Valor—El proceso de Creación de la lista priorizada de pendientes del producto asegura que los requisitos de mayor valor del cliente sean los primeros en cubrirse.
  • Resolución de Problemas de Forma más Rápida—Colaboración y Colocación de equipos multifuncionales conducen a la resolución de problemas con mayor rapidez.
  • Entregables Efectivos—El proceso de Creación de la lista priorizada de pendientes del producto y revisiones periódicas después de la creación de entregables asegura entregas efectivas para el cliente.
  • Se enfoca en el cliente y éste se encuentra siempre involucrado en todo el proyecto.

 

Desventajas de Scrum

  • Se requiere de un experto en la toma de decisiones durante las reuniones.
  • El proyecto se puede desviar mucho si el product owner no tiene claro lo que quiere.
  • Poca documentación.
  • Dificultad para estimar presupuestos en base a desarrollo del proyecto.

 

Entonces… ¿Que Usamos? ¿Waterfall o Agile?

Pues bien, como todo en esta vida DEPENDE, según el tipo de proyecto y la organización en la que se está trabajando se puede adaptar mejor uno u otro método de trabajo.

Ahora vamos a comparar estas formas de trabajo

¿Qué ha cambiado?

El triángulo de la gestión de proyectos nos muestra como están estructurados estos métodos.

 

12

      

Según el enfoque cada método se basa en diferentes partes del proyecto

 

* Estilo de los procesos

 14-1

 

Cambios en la planificación y los entregables

 15

16

Por un lado, los proyectos Waterfall requieren de un equipo estructurado con un jefe de proyecto como máximo responsable y quien se encarga de hablar con el cliente, mientras que en un proyecto Agile existe una comunicación fluida entre el equipo y el cliente.

En cuanto al proceso de desarrollo, en Waterfall se divide en fases mientras que en agile se separa el ciclo de vida de los proyectos en “sprints”.

Una de las diferencias más importantes entre la metodología de desarrollo Agile y Waterfall es su propio enfoque de la calidad y las pruebas. En Waterfall, la fase de "Prueba" viene después de la fase de "Construcción"; pero en Agile, la prueba generalmente se lleva a cabo simultáneamente con la programación o, al menos, durante la misma iteración que la programación.

Entonces dependiendo de la organización, del tipo de proyecto y de los tipos de resultados que esperamos conseguir podemos utilizar waterfall o agile.

Temas: Agile methods, Agile, scrum, waterfall

Acerca de The Softtek Blog

The Softtek Blog proporciona perspectivas y conocimientos prácticos acerca de la tecnología digital y las tendencias que hoy tienen impacto en todas las industrias.

Publicaciones recientes

Publicaciones por tema

ver todos
To top