Ich habe eine Demonstration gesehen, die eine ziemlich gute Analogie zu den Vorteilen von Agile gegenüber traditionelleren Methoden darstellt. Es basiert auf dem Spiel Battleship. Sie und der andere Spieler setzen sich zum normalen Schlachtschiff-Gitter. Sie haben beide 20 Schüsse, die jeweils 5.000 US-Dollar kosten, was einer anfänglichen Gesamtkosten von 100.000 US-Dollar entspricht. Hier ist der Haken; Sie müssen ALLE Ihre Schüsse planen, bevor Sie einen einzigen abfeuern. Ihr Gegner wird seine Schüsse "normal" abfeuern; Machen Sie einen Schuss, sehen Sie, was passiert, machen Sie einen weiteren Schuss.
Ratet mal, wer nach 20 Schüssen mehr Treffer erzielt hat?
Die Analogie lässt sich ziemlich sauber in Agile vs Waterfall übersetzen. In Agile können Sie die Gesamtsumme von allem, was Sie bereits getan haben, berücksichtigen, wenn Sie planen, was Sie als Nächstes tun werden. Sie haben eine grundlegende Vorstellung von den Bereichen, die schwierig sein werden, und von den Bereichen, die aufgrund von Schwierigkeiten oder mangelnden Schwierigkeiten, die Sie bereits erlebt haben, einfach sein werden. Sie haben auch Feedback von Ihrem Kunden in kleineren Teilen erhalten, das besagt, dass ihm das gefallen hat oder nicht gefallen hat, und können dieses Wissen schnell einbinden, ohne viel zusätzlichen Code auf etwas aufgebaut zu haben, das der Kunde für falsch hält .
Bei herkömmlichen Wasserfallmethoden werden das gesamte System und der Entwicklungsplan geplant, bevor die Codierung jemals beginnt. Dies ist der Ansatz "Planen Sie alle Schüsse, bevor Sie einen abfeuern". Möglicherweise können Sie genau das liefern, was der Kunde verlangt hat, aber er kann es sich ansehen und sagen: "Das brauchen wir nicht." Ja, Sie erhalten Ihr Geld, weil Sie gemäß den Vertragsbedingungen geliefert haben, aber Ihre Entwickler haben ihre Zeit verschwendet, Ihr Kunde hat ihr Geld verschwendet und keiner ist mit dem Ergebnis zufrieden. Agile soll dabei helfen, indem sich die Anforderungen des Projekts während der Entwicklung ändern. Alles, was Sie noch nicht getan haben, kann sich ändern. Alles, was Sie bereits getan haben, kann sich auch ändern.
Da der Kunde entscheiden kann, woran Sie zuerst arbeiten, und Sie häufiger kleine Teile der abgeschlossenen Arbeit liefern, verfügt der Kunde möglicherweise über ein System, das er früher verwenden kann. Dies ist ein sichtbarer ROI für Ihren Kunden, wodurch der Kunde in der Regel eher bereit ist, sich an diesem komplexeren Entwicklungsprozess zu beteiligen.