Con la cascada, el proyecto se mueve en una dirección después de que se completa cada fase y pasa a la siguiente fase. Por otro lado, Agile se enfoca en iteraciones más pequeñas y se enfoca en completar un producto mínimo viable. El mejor ejemplo que he escuchado es que si un cliente necesita un automóvil del que no acaba de empezar a tratar de construir un automóvil, la primera iteración es un monopatín, que es una forma de transporte como el automóvil, pero extremadamente básico. La siguiente iteración sería agregar más funciones y construir una motocicleta. Esto está mucho más cerca de lo que solicitó el cliente, de hecho, el cliente podría estar satisfecho con este producto tal como está.

Debido a su naturaleza, la metodología de cascada produce toneladas de documentación que incluye diagramas, ya que tienen que hacerlo correctamente en el papel antes de pasar a la siguiente fase. Agile requiere menos documentación por adelantado y tiene más posibilidades de eliminar errores. La documentación escrita suele ser difícil para el cliente imaginar el resultado.

Agile construye rápidamente algo en cada fase. Algo tangible, que el cliente puede probar permitiendo una mejor retroalimentación y una comunicación más clara. He visto desventajas en ambos métodos, así que sigo un híbrido de los dos. Empiezo documentando las actas de las reuniones y hago un documento de especificaciones rápidas para tener una imagen más clara en mi cabeza, luego paso a una maqueta rápida de C #, que es solo el diseño visual de los campos y botones. Por lo general, esto es lo suficientemente bueno para obtener una excelente respuesta del cliente antes de enviarlo a nuestros desarrolladores para crear la versión final. Esto termina produciendo un producto mucho mejor para el cliente y ahorra a mi equipo un montón de trabajo si algo se pierde o se requiere un cambio.