Vi uma demonstração que é uma boa analogia dos benefícios do Agile em relação aos métodos mais tradicionais. É baseado no jogo Battleship. Você e o outro jogador sentam-se à grade normal do Battleship. Vocês dois têm 20 fotos, cada uma custando US $ 5.000 para uma despesa total inicial de 100.000. Aqui está o problema; você precisa planejar TODOS os seus tiros antes de disparar um único. Seu oponente dispara seus tiros "normalmente"; dê um tiro, veja o que acontece, dê outro tiro.
No final de 20 tiros, adivinha quem marcou mais hits?
A analogia se traduz em Agile vs Waterfall de maneira bastante limpa; No Agile, você pode levar em consideração a soma total de tudo o que já fez ao planejar o que fará a seguir. Você terá uma idéia básica das áreas que serão difíceis e das áreas que serão fáceis com base nas dificuldades ou na falta de dificuldade que você já teve. Você também recebeu feedback do seu cliente em partes menores, afirmando que ele gostou ou não, e pode incorporar esse conhecimento rapidamente, sem ter construído muito código adicional sobre algo que o cliente diz estar errado .
Nas metodologias tradicionais do Waterfall, todo o sistema e o cronograma de desenvolvimento são planejados antes do início da codificação. Essa é a abordagem "planeje todos os tiros antes de disparar um"; você pode entregar exatamente o que o cliente pediu, mas eles podem dar uma olhada e dizer "não é disso que precisamos". Sim, você recebe seu dinheiro porque entregou de acordo com os termos do contrato, mas seus desenvolvedores desperdiçaram seu tempo, seu cliente desperdiçou seu dinheiro e nem estão satisfeitos com o resultado. O Agile foi projetado para ajudar nisso, permitindo que os requisitos do projeto sejam alterados enquanto o desenvolvimento está em andamento. Tudo o que você ainda não fez está aberto a mudanças; tudo o que você já fez também pode mudar,
Além disso, como o cliente decide primeiro o que você trabalha e, com você entregando pequenos pedaços de trabalho concluído com mais frequência, é possível que o cliente tenha um sistema que possa usar mais cedo. Esse ROI é visível para o seu cliente, o que geralmente torna o cliente mais disposto a participar desse processo de desenvolvimento mais envolvido.