Dies ergab sich aus einigen Antworten und Kommentaren zu einer anderen Frage ( dieser ).
Ich habe hauptsächlich mit Wasserfallprojekten gearbeitet und während ich an Ad-hoc-Projekten gearbeitet habe, die agiles Verhalten angenommen und einiges über Agilität gelesen haben, würde ich sagen, dass ich nie an einem "richtigen" agilen Projekt gearbeitet habe .
Meine Frage ist, hat das Konzept von "spät" eine Bedeutung für agil, wenn ja, was dann?
Meine Argumentation ist, dass Sie mit Agile keinen Vorabplan haben und zu Beginn keine detaillierten Anforderungen haben. Möglicherweise haben Sie ein übergeordnetes Ziel vor Augen und ein damit verbundenes fiktives Datum, aber beide können sich ändern (möglicherweise massiv) und beide sind nicht sicher.
Wenn Sie also nicht genau wissen, was Sie im Grunde liefern werden, bis Sie es liefern und der Benutzer es akzeptiert, und wenn Sie keinen Zeitplan über den nächsten Sprint hinaus haben, wie könnten Sie jemals in irgendeiner Weise zu spät kommen? hat eigentlich bedeutung?
(Natürlich verstehe ich, dass ein Sprint überlaufen könnte, aber ich spreche darüber hinaus.)
Um ganz klar zu sein, ich bin (persönlich) zufrieden mit der Annahme, dass Wasserfallprojekte (auch relativ große) rechtzeitig möglich sind, weil ich sie gesehen habe und daran beteiligt war - sie sind nicht einfach oder sogar üblich aber sie sind möglich.
Es geht nicht darum, agil zu klopfen, es geht darum, dass ich es verstehe. Ich habe den Vorteil von Agilität immer als nichts gesehen, was mit Fristen oder Budgets zu tun hat (oder eher nur indirekt), sondern mit dem Umfang - Agile liefert näher an dem, was wirklich wichtig ist, als an dem, was das Projektteam für wichtig hält, bevor sie es tun. habe nichts gesehen.
quelle
Antworten:
Ich bin nicht der Meinung, dass ein agiles Projekt keinen Vorabplan hat.
Ich habe die Erfahrung gemacht, dass die Geschäftsanalysten viel Zeit in Designmeetings mit Kunden und Entwicklern verbracht haben, um eine detaillierte Liste der erreichbaren Anforderungen zu erstellen, die als User Stories dargestellt werden. Diese werden dann in Aufgaben mit geeigneten Schätzungen unterteilt, die von erfahrenen Entwicklern beigefügt werden.
Sobald die wichtigsten Aufgaben zu Beginn des Sprints / der Iteration identifiziert wurden, kann die Codierung beginnen. Dieser Auswahlprozess bestimmt die Bedeutung der Iteration im Gesamtprojekt ("Wir erstellen den Anmeldeprozess"). Verschiedene Mitglieder des Teams erledigen die verschiedenen Aufgaben, die erforderlich sind, um diese User Story umzusetzen.
Am Ende der Iteration sollten alle User Stories für diese Iteration vollständig sein, sonst sind Sie zu spät . Ebenso sollte die Entwicklung am Ende jeder Iteration und der Freigabe des Produkts gestoppt werden können. Es ist möglicherweise nicht vollständig in Bezug auf alle User Stories, aber die User Stories, die in der Iteration angefordert wurden, sind vollständig und das Produkt kann bis zu diesen Grenzen arbeiten.
quelle
"spät" in einer agilen Methodik bedeutet dasselbe wie in einer Wasserfall-Methodik: Die Schätzungen waren falsch, der Umfang war zu groß für die zugewiesene Zeit, unerwartete Schwierigkeiten traten auf, der Kunde reagierte nicht genug, die Programmierer wurden faul, Die Maschinen sind abgestürzt, Ihr Hund hat meinen Bytecode gefressen usw.
Sie lernen daraus und passen sich der nächsten Iteration an
Der Unterschied besteht darin, dass dies alle 2 bis 4 Wochen geschehen kann, sodass die Lektionen gelernt und der Prozess schnell angepasst wird
quelle
Ja, aber es wird nur 1 Monat dauern, um zu wissen, dass Sie nicht Ihr 9-monatiges-mythisches-endgültiges-Projekt-Fälligkeitsdatum anstelle von 9 erreichen.
Ihre Argumentation basiert auf der Annahme, dass Vorabpläne und detaillierte Anforderungen für große Projekte möglich sind. Ich bin mir nicht sicher, ob es dafür viele Beweise gibt. Vielleicht sind alle Horrorgeschichten nur anekdotisch? Jeder Entwickler würde gerne mit vollständigen und sich nie ändernden Spezifikationen arbeiten, denen der Kunde voll und ganz zustimmt und die er versteht.
quelle
Jedes Mal, wenn Sie eine Verpflichtung eingehen, laufen Sie Gefahr, zu spät zu kommen. Das gilt auch für Agile.
Wir wissen jedoch, dass Sie die Zukunft nicht vorhersagen können, und wir wissen, dass der Kunde seine Meinung ständig ändern wird, und wir sind uns einig, dass dies eine gute Sache ist. Wenn wir das akzeptieren, müssen wir auch akzeptieren, dass alle Verpflichtungen so gut wie immer falsch sind, was wiederum die Beantwortung der Frage nach der Verspätung erleichtert: Wir liegen immer falsch (zu früh oder zu spät). Es ist alles eine Frage der Vermutungen, egal wie gut poliert. Wirf eine Münze.
Dies müssen wir als Entwickler einfach akzeptieren und von diesem Standpunkt aus versuchen, einen anderen Weg zu finden, um zu arbeiten, einen Weg, auf dem das Problem der Verspätung viel weniger wichtig wird. Ein Perspektivwechsel. Ich denke, der Weg, dies zu tun, besteht darin, funktionierende Software so schnell wie möglich bereitzustellen, mit der Option, zu kündigen, wenn der Kunde zufrieden ist.
Sie kommen beispielsweise zu spät, wenn Sie die zu Beginn der aktuellen Iteration eingegangenen Verpflichtungen nicht erfüllen. Dies wird erwartet, und Sie sollten daraus lernen und Ihren Prozess anpassen, damit Sie bei der nächsten Iteration weniger wahrscheinlich versagen. Der beste Weg, dies zu handhaben, besteht darin, die Iterationen so klein wie möglich zu halten.
Bei der Planung mit mehreren Iterationen, auch als Release-Planung bezeichnet, verwenden Sie die aus den abgeschlossenen Iterationen berechnete Geschwindigkeit und extrapolieren die Daten, um ein zukünftiges Release-Datum vorherzusagen. Ich empfehle James Shores ' Artikel oder meinen eigenen (kürzeren) für weitere Details. Beachten Sie jedoch, dass es sich nie um eine solide Verpflichtung handelt und eher um "Wir sind zu 80% sicher, dass wir die nächsten Funktionen bis zu diesem Datum fertigstellen werden". Dies kann (irgendwie) dazu führen, dass Sie zu spät kommen, aber die Verpflichtung ist nur eine Wahrscheinlichkeit, keine Tatsache.
Vergleichen Sie dies nun mit dem grundlegenden Versprechen von Agile, dass Sie immer bereit sein sollten, funktionierende Software zu veröffentlichen, ob die Funktion vollständig ist oder nicht. Dies gibt dem Kunden die Freiheit, die Entwicklung zu stoppen, wenn er der Meinung ist, dass das System gut genug ist, was viel früher als erwartet geschehen kann. Es wird auch empfohlen, das Projekt in neue Richtungen zu lenken, basierend auf echten Rückmeldungen aus der neuesten Iteration.
Die oben genannten Punkte sollten mehr als genug sein, damit jeder Kunde die volle Kontrolle über die Entwicklung hat, und ich hoffe, dass dies die Frage nach der Verspätung bei agilen Methoden beantwortet.
quelle
Es gibt zwei Arten von "spät" in Agile SCRUM>
Carryover - Geschichten, die am Ende eines Sprints nicht "fertig" sind. Entwickler "verpflichten" sich, einen PBI fertigzustellen. Wenn dies nicht getan wird, kann dies als Übertrag angesehen werden.
Roadmap - Angenommen, Ihre Organisation verfügt über eine Roadmap und unter der Annahme, dass sie Daten enthält. Wenn die wichtigsten Ergebnisse für diese Daten übersehen werden, kann dies als "spät" angesehen werden.
quelle