Wenn jemand eine Frist festlegen möchte, ist dies in Ordnung und die Frist kann festgelegt werden. Sie müssen jedoch verstehen, dass der Geltungsbereich flexibel bleiben muss, wenn die Frist festgelegt ist.
tl; dr
In einer idealen Welt hätten wir keine Fristen und liefern Dinge, wenn sie fertig sind. Die Realität ist jedoch, dass Leute, die für Dinge bezahlen, normalerweise wissen wollen, wann sie fertig sind. Agile Methoden erkennen dies, erkennen aber auch, dass nicht alles gebunden werden kann.
Dies stellt sicher, dass Sie die Lieferqualität auf dem für das Produkt richtigen Niveau halten können. Wenn Sie eine Frist und einen Umfang (und ein Budget) festlegen, werden die Dinge schneller und Sie landen am Ende des Projekts in der alten Wasserfallwelt mit einer verrückten Crunch-Zeit. Eine Erhöhung des Budgets ist normalerweise nicht die Lösung, da das Hinzufügen von mehr Entwicklern und Testern ein Problem nicht schneller löst. Es ist eine bekannte Ansicht (und ich stimme aus Erfahrung zu), dass je mehr Leute man hinzufügt (jeder mit seinen eigenen Schwächen), desto länger dauert es.
Normalerweise (es sei denn, sie verstehen die agilen Methoden wirklich) wird der Person, die für die Software bezahlt, nicht gerne gesagt, dass wir Ihre Frist einhalten können, aber wir können nicht alles tun, was Sie wollen. Dies kann durch Priorisieren der Funktionen, aus denen die Software besteht, verwaltet werden. Ihre Priorisierungsdiskussion könnte so aussehen:
Entwicklerteam (D): "Können Sie die Funktionen, die bereitgestellt werden sollen, mit den wichtigsten zuerst priorisieren?"
Kunde (C): "Alles hat Priorität 1 - ich möchte, dass alles bis Ende nächsten Monats erledigt ist."
D : "Das ist möglich, aber nicht möglich, wenn sich die Anforderungen ändern oder wir Probleme entdecken, die wir bei der Entwicklung nicht erwartet haben."
C: "Was ist, wenn ich dir mehr Geld gebe?"
D: " Seufz ... selbst mit mehr Ressourcen wird es einen Monat dauern, bis sie wirklich loslegen. Wenn Sie sich nicht sicher sind, wie Sie die Funktionen priorisieren sollen, teilen Sie uns einfach mit, welche Sie zuerst ausführen möchten."
C: "Ok, ich möchte den großen Knopf, aber mach ihn wirklich groß und dann ... usw."
Jetzt können Sie die Funktionen in der Prioritätsreihenfolge durcharbeiten. Es ist hilfreich, gemeinsam mit Ihrem Team einen Blick auf die Elemente zu werfen, die in der Prioritätsreihenfolge niedriger sind, und frühzeitig Schätzungen vorzunehmen, da Sie wissen, dass Sie diese möglicherweise ändern können, wenn Sie in der Entwicklung sind, wenn Sie weitere Informationen haben. Dies kann verwendet werden, um Ihre Roadmap neu zu definieren oder zu erstellen, wenn Sie noch keine haben. Dies bildet dann die Grundlage für Ihren Release-Plan. Die Roadmap kann mit dem Kunden besprochen werden, wobei dieser anerkennt, dass sich der Umfang ändern kann, Sie jedoch eine Bestellung für die zu liefernden Dinge haben.
Einer der großen Vorteile von Agile ist, dass es anerkennt, dass sich die Dinge während der Entwicklung ändern und Sie sich anpassen, während sie es tun. Im Gegensatz zu herkömmlichen Ansätzen bedeutet dieses Prinzip in Verbindung mit den regelmäßigen Sprint-Ergebnissen und der laufenden Kommunikation mit dem Kunden, dass Sie natürlich gezwungen sind, transparenter über den Fortschritt zu sein, was eine gute Sache ist.
Manchmal gefällt es dem Kunden nicht, dass er zu einem bestimmten Zeitpunkt nicht das bekommt, was er will, aber er versteht, warum und was er bekommt, ist von guter Qualität. Und 6 Monate nach Auslieferung der Funktionen ist es dem Kunden egal oder er merkt sich, dass Sie zu einem bestimmten Zeitpunkt geliefert wurden. Er merkt sich auch die Qualität des Produkts, das er noch verwendet.