Hay una demostración que vi que es una analogía bastante buena de los beneficios de Agile sobre los métodos más tradicionales. Está basado en el juego Battleship. Usted y el otro jugador se sientan en la grilla normal de Battleship. Ambos tienen 20 disparos, cada uno con un costo de $ 5,000 para un gasto inicial total de 100,000. Aquí está el truco; Tienes que planificar TODOS tus disparos antes de disparar uno solo. Tu oponente disparará sus disparos "normalmente"; tomar una foto, ver qué pasa, tomar otra foto.
Al final de 20 disparos, ¿adivina quién anotó más golpes?
La analogía se traduce en Agile vs Waterfall de manera bastante limpia; En Agile, puede tener en cuenta la suma total de todo lo que ya ha hecho al planificar lo que va a hacer a continuación. Tendrá una idea básica de las áreas que serán difíciles y las áreas que serán fáciles según las dificultades o la falta de dificultades que ya haya experimentado. También ha recibido comentarios de su cliente en fragmentos más pequeños, indicando que les gustó esto o no, y que pueden incorporar ese conocimiento rápidamente, sin haber creado una gran cantidad de código adicional además de algo que el cliente dice que está mal .
En las metodologías tradicionales de Waterfall, todo el sistema y el cronograma de desarrollo se planifican antes de que comience la codificación. Este es el enfoque de "planificar todos los disparos antes de disparar uno"; es posible que pueda entregar exactamente lo que el cliente solicitó, pero podrían echarle un vistazo y decir "eso no es lo que necesitamos". Sí, obtienes tu dinero porque entregaste de acuerdo con los términos del contrato, pero tus desarrolladores han perdido su tiempo, tu cliente ha desperdiciado su dinero y ninguno de los dos está contento con el resultado. Agile está diseñado para ayudar con esto, permitiendo que los requisitos del proyecto cambien mientras el desarrollo está en marcha. Cualquier cosa que aún no haya hecho está abierta a cambios; todo lo que HAS hecho también puede cambiar
Además, debido a que el cliente decide primero en qué trabajará, y con usted entregando pequeños trozos de trabajo completado con mayor frecuencia, el cliente podría posiblemente tener un sistema que pueda usar antes. Ese es el ROI visible para su cliente, lo que generalmente hace que el cliente esté más dispuesto a participar en este proceso de desarrollo más complicado.