Es gibt eine Sache, die ich mich immer gefragt habe, wenn ich über all diese "agilen Entwicklungsaufgaben" hier auf SE und anderen Websites gelesen habe:
Im "traditionellen" Software-Engineering sind Sie
- die Anforderungen des Benutzers sammeln,
- eine Spezifikation schreiben, die auf diesen Anforderungen basiert,
- Geben Sie es dem Kunden und stellen Sie ihm die bisher geleistete Arbeit in Rechnung.
- Erstellen Sie ein (grobes) technisches Design, damit Sie die Kosten für die Implementierung abschätzen können.
- Geben Sie dem Benutzer ein Preisangebot für die Implementierung,
- Warten Sie, bis der Kunde die Spezifikation unterschrieben hat und das Angebot annimmt.
- entwerfen, implementieren, testen,
- Rechnung.
Wenn sich während des Prozesses die Anforderungen ändern, senden Sie ein Angebot (mit einem Preis) für die gewünschten Änderungen (oder machen es kostenlos, wenn die Änderung klein ist, Sie mögen den Kunden und der Kunde tut es nicht zu oft). .
Wie funktioniert dies (finanziell) in einem agilen Projekt, in dem häufige Anforderungsänderungen Teil des Prozesses sind?
- Schreiben Sie für jede Designänderung ein Angebot? (Wäre das nicht ein ziemliches Durcheinander?)
- Oder verhandeln Sie einen Festpreis und hoffen, dass der Kunde die Anforderungen nicht zu oft ändert? (Könnte riskant sein, ich kenne Kunden, die diese Gelegenheit nutzen, um jahrelang neue Funktionen anzufordern, bevor sie akzeptieren, dass das Projekt abgeschlossen ist.)
- Oder stellen Sie dem Kunden nur die Gesamtzeit in Rechnung? (Könnte für den Kunden riskant sein, der die Kosten nicht im Voraus kennt.)