Hat spät eine Bedeutung in agilen Methoden?

10

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.

Jon Hopkins
quelle
2
Wollen Sie damit implizieren, dass innerhalb eines Agile-Projekts keine Fristen existieren können? "Ja wirklich?" Wenn das Projekt eine Frist hat und diese nicht eingehalten wird, ist es spät. Ende der Geschichte, Wortspiel beabsichtigt.
JB King
Ich denke, das ist eine sehr interessante Frage. Es geht direkt auf den Kern dessen ein, was Agilität anders macht.
Martin Wickman

Antworten:

9

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.

Gary Rowe
quelle
Der solide Plan ist jedoch viel kürzer, nicht wahr - ein Sprint, der wahrscheinlich einen kleinen Bruchteil des Ganzen ausmacht? Und können sich Schätzungen für zukünftige Sprints nicht ändern, wenn weitere Informationen verfügbar werden?
Jon Hopkins
@ Jon Ja und ja. Ich habe festgestellt, dass es notwendig ist, einen übergreifenden Plan zu haben, der die Grundzüge dessen enthält, was zu tun ist. Dieser übergreifende Plan ist sehr umständlich in Bezug auf die Schätzung der Lieferung zu Beginn, da so viel unbekannt ist. Da immer mehr des Gesamtplans in die User Stories zerlegt und abgeschlossen wird, zeigt ein Projekt-Burndown-Diagramm die Wahrscheinlichkeit der Lieferung für ein bestimmtes Datum mit immer größerer Genauigkeit.
Gary Rowe
6

"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

Steven A. Lowe
quelle
1
+1 "Ihr Hund hat meinen Bytecode gefressen" (muss diesen irgendwann verwenden) - aber im Ernst, eine schnelle Rückmeldung von Fehlern ist der Schlüssel zur agilen Methodik.
Gary Rowe
4

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.

JeffO
quelle
1
Anekdotenbeweise funktionieren in beide Richtungen. Ich habe gesehen, wie Wasserfallprojekte funktionieren, und meine Erfahrung ist, dass die Gründe, warum sie scheitern, nicht darin liegen, dass sie nicht möglich sind, sondern darin, dass sie schlecht ausgeführt werden (schlechtes Scoping und schlechte Spezifikationen, schlechte oder nicht vorhandene Änderungskontrolle, Schätzungen basierend auf dem, was Sie wollen wahr sein und nicht das, was das Projektteam ihnen sagt, wird wahr sein.
Jon Hopkins
4

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.

Und genau darum geht es bei Agile. Ein kluger Weg, um mit dieser unangenehmen Vorstellung umzugehen, dass Verspätung eine Tatsache ist, und wir müssen einfach so gut wie möglich damit umgehen.

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.

Martin Wickman
quelle
0

Es gibt zwei Arten von "spät" in Agile SCRUM>

  1. 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.

  2. 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.

RandomUs1r
quelle