Ich habe in letzter Zeit viele Posts gesehen, in denen es heißt, dass einer der Hauptgründe für die Verwendung von Agile darin besteht, dass Kunden häufig die Anforderungen ändern.
Nehmen wir jedoch an, die Kunden ändern die Anforderungen nicht häufig . Tatsächlich haben die Kunden zwar feste Anforderungen, die vielleicht etwas vage sind (aber nichts Unangemessenes), aber ich benutze trotzdem Agile.
Der Grund, warum ich Agile einsetze, ist, dass die Software so komplex ist, dass es Details gibt, Probleme, die ich erst erkennen würde, wenn ich sie tatsächlich sehe. Ich könnte einen umfassenden Planungsansatz wie Waterfall durchführen, aber dann würde es einige Monate dauern, bis alle High-Level-Designs und Low-Level-Codierungssignaturen abgeschlossen sind. Es gibt jedoch ein sehr spezifisches, festes Architekturdesign für das System.
Meine Frage ist: Wäre dies als schlecht, Cowboy-Codierung, Anti-Muster, etc.? Müssen wir den Wasserfall einsetzen und so viel wie möglich detailliert planen, bevor wir mit dem Codieren beginnen, wenn die Anforderungen stabil sind, anstatt diese Mentalität in Agile zu verwenden?
EDIT: Das Wichtigste dabei ist, dass wir den Kunden KEINE Schuld für sich ändernde Anforderungen geben können. Angenommen, die Kunden haben uns auf ein sehr konkretes Problem hingewiesen, geben uns eine Wunschliste mit sehr vernünftigen Details und lassen uns in Ruhe (dh die Kunden haben ihre eigenen produktiven Dinge zu tun, nerven sie nicht mehr) ende, wenn du einen minimalen funktionierenden Prototyp hast). Wäre es falsch, in diesem Szenario Agile zu verwenden?