Seamos claros sobre esto desde el principio: Agile perderá cada vez en comparación con un proceso de cascada idealizado, un waterfall de libro.
Siempre que se compara Agile con waterfall, Agile sale ganando de inicio y os justificaré porqué.
¿Cómo es un proceso de cascada idealizado?
En un proceso de cascada idealizado, alguien asume que no hay problemas con el trabajo que fluye por la cascada, por lo general desde un paso de análisis a un paso de diseño a la codificación y finalmente a las pruebas.
Esto significa, por ejemplo, que un diseño perfectamente hecho se entrega a los programadores que lo implementan perfectamente y lo entregan casi sin errores a los probadores.
En esta cascada idealizada no hay grandes errores ni descuidos.
E incluso se presume que los clientes nunca cambian de opinión.
Todo se asume que fluye perfectamente, o casi, de un paso a otro.
En comparación con esta fantasía, Agile siempre se quedará corto.
¿Cómo colaboramos en Agile?
Agile requiere reelaboración como parte de la iteración. Agile también incluye un cambio cultural. Un cambio de ver las cosas.
Eso parecerá un desperdicio en comparación, ya que nunca hubo reelaboración en la cascada idealizada. Tampoco llevaba un cambio cultural vinculado.
Agile requiere que los equipos se reúnan, colaboren y resuelvan problemas juntos.
Eso no era necesario en la cascada idealizada. En ese enfoque, cada persona hace su trabajo y se lo entrega perfectamente al siguiente. Es una manera secuencial de trabajar.
La colaboración se reduce a pasar bloques de trabajo entre personas en lugares de la ejecución de la cascada.
Los equipos ágiles reconocen que no todo se puede saber desde el principio. Navegamos en lo desconocido cuando enfrontamos problemas complejos.
Eso significa que a veces lo que ha sido diseñado, codificado y probado será cambiado, redefinido y cuestionado.
Pero desarrollar esa implementación inicial es a menudo la forma más rápida de descubrir lo que las necesidades reales ocultaban.
¿Qué dicen los defensores de la cascada idealizada?
Los defensores de un enfoque de cascada idealizado asumen que es posible el descubrimiento de conocimientos sea siempre perfecto por adelantado.
Y que nunca habrá malentendidos o malas comunicaciones que se propaguen por la cascada hacia otras actividades de este proceso secuencial.
En el mundo real, el desarrollo de software es complejo.
La gente se comunica mal por lo general.
La documentación no se comprende completamente.
Las necesidades del usuario no se pueden comprender completamente de antemano ni por adelantado.
Y sus necesidades cambian constantemente. Se producen malentendidos. Abundan los desafíos y las complejidades.
Agile se quedará corto cada vez frente a cualquier proceso idealizado.
Debemos comparar nuestro proceso actual con un proceso ágil inicial.
Pero comparemos de manera justa observando cómo se ejecuta cada uno en el mundo real si desea tener éxito con Agile de manera efectiva.