Mein Team hat kürzlich einen fast einjährigen Plan für unsere Arbeit erstellt. Wir haben den Plan in drei Phasen unterteilt. Jede Phase wird ein paar Starts beinhalten.
Ich frage mich, ob das aus agiler Sicht falsch ist? Ich denke, es ist keine schlechte Idee, weil wir nicht zu viel Zeit damit verbracht haben, etwas anderes als die ersten Schritte zu entwerfen. Es ist uns möglich, die Richtung zu ändern. Gleichzeitig ist es schön, dass wir nicht nur kurzfristig handeln.
project-management
agile
Petko M
quelle
quelle
Antworten:
Zu gehen , um eine Vision , wo das Projekt zu haben , ist eine gute Sache TM .
Zu glauben, dass genau das passieren wird, ist nicht so.
Der Ansatz, den Agile-Methoden verfolgen, besteht darin, die Dinge in verdauliche Teile zu zerlegen und das Sehvermögen nach jedem verdauten Teil neu einzustellen.
Das bedeutet, dass Ihr Endpunkt in einem Jahr nicht genau das sein wird, was Sie jetzt denken. Sie sollten jedoch alle wichtigen Punkte auf Ihrer Liste in Angriff genommen haben und Ihre Stakeholder im weiteren Verlauf engagiert und zufrieden haben.
quelle
OK, dem Management wurde ein Mythos präsentiert, nach dem man planen kann. Ich hoffe, um deinetwillen, dass sie dich nicht daran hindern. Denn ich bin gewillt, Geld zu setzen, damit Ihr Team nichts erreicht, was in diesem langfristigen Plan steht. In der Tat, wenn Sie den Branchendurchschnitt erreichen, werden Sie ungefähr den Faktor 2 verfehlen. Und in den meisten Organisationen wird eine einmal gegebene Schätzung zu dem Verein, mit dem sie Sie schlagen können, so viel sie wollen.
Sie denken wahrscheinlich, dass ich nur zynisch bin. Schließlich haben Sie nur vage Zeiten für nicht spezifizierte Funktionen mitgeteilt, von denen jeder weiß, dass sie viel langsamer oder schneller ablaufen können als geplant, oder? Tut mir leid, das meiste davon mag stimmen, aber so neigen die Leute nicht dazu, diese Zahlen zu hören. Sie haben Daten gehört, und ein Datum, das einmal gesprochen wurde, wird tendenziell als solider angesehen, als Sie es sagten. Darüber hinaus wird eine Kommunikationskette noch solider. Und wenn externen Kunden aufgrund Ihrer Aussagen Verkaufsversprechen gemacht wurden, werden Sie plötzlich feststellen, dass diese Zahlen viel weniger flexibel sind, als es eigentlich sein sollte. Und ich garantiere, dass Sie die Zeit unterschätzt haben, die die Dinge dauern werden.
Mit diesem offensichtlichen Punkt aus dem Weg werde ich empfehlen, dass Sie Software Estimation lesen , um etwas darüber zu erfahren, wie Software Estimation wirklich durchgeführt werden sollte. Sie werden viel darüber lernen, was Sie falsch gemacht haben und wie Sie es beim nächsten Mal besser machen können. (Dabei erfährst du, warum ich so zuversichtlich bin, dass du überbewertet hast, was du tun wirst.)
Bei Agile geht es jedoch hauptsächlich darum, den Prozess auf das zu reduzieren, was für ein kleines Team angemessen ist. Häufig ist es eine gute Möglichkeit, den Prozess zu reduzieren, zu versuchen, die langfristige Planung in großem Maßstab zu reduzieren, um kurzfristig kleinere Dinge zu planen. Es ist in der Regel auch ehrlicher, weil Sie nicht wissen, was in Zukunft passieren wird. Dies passt jedoch häufig nicht zu größeren Geschäftsanforderungen. Unabhängig davon, ob Sie sich für agil erklären, müssen Sie manchmal längere Pläne aufstellen.
Vor diesem Hintergrund rate ich Ihnen dringend, eine wichtige Tatsache über die von Ihnen mitgeteilten Daten herauszufinden, die sich leider als Fristen für Sie herausstellen werden. Und das ist die Tatsache. Was interessiert die Leute, das Datum oder den Funktionsumfang? Hier ist was ich damit meine. Häufig haben Organisationen bestimmte Daten, die wichtig sind. Lassen Sie zum Beispiel etwas für eine Konferenz oder vor dem Feiertagsansturm erledigen. In diesem Fall ist es wichtig, etwas freizugeben und nicht so sehr, ob das etwas vollständig ist. Manchmal gibt es eine Reihe von Funktionen, die wirklich gemeinsam freigegeben werden müssen, und die Vollständigkeit ist wichtiger als der Zeitpunkt, zu dem dies genau geschieht. Wenn Sie herausfinden, in welcher Situation Sie sich befinden, ist Ihr Team in der Lage, den Umgang mit den (fast) unvermeidlichen Krisen, die auf Sie zukommen, besser zu planen.
quelle
Es ist in Ordnung, einen Plan zu haben, solange Sie davon ausgehen, dass er in Arbeit ist und nicht in Stein gemeißelt.
Der Schlüssel dazu ist, regelmäßig (mindestens monatlich) Veröffentlichungen vorzunehmen , echtes Feedback von Ihren Benutzern zu erhalten und Ihren Plan basierend auf diesem Feedback zu aktualisieren .
Dies bedeutet, dass sich Ihr Plan ändert, wenn sich der Umfang des Projekts ändert. Dies ist eine gute Sache , da Ihre Benutzer mehr darüber erfahren haben, was sie wollen.
quelle
Unter der Annahme von
project-management
undagile
Sie Scrum gemeint, würde dies nicht die genaue Art und Weise zu gehen.In der
Scrum
Perspektive, wenn Sie einen Einjahresplan haben, sollten Sie mindestens so viele Sprints haben, wie es Monate in einem Jahr gibt. Daher wird Ihr Einjahresplan flexibler, da er zwischen zwei Sprints geändert werden kann.A
Sprint
kann nicht länger als einen Monat sein, in dem sichTeam
die zu bringende Person zumSprint Backlog Items
Status von verpflichtetDone
.Done
ist hier ein wichtiges Wort, und jedesScrum Team
muss eine Definition von erledigt haben, das heißt, wo keine Arbeit mehr zu erledigen ist. Wenn einSprint Backlog Item
wird Geschehen , das bedeutet , dass die Analyse, Architektur und technische Dokumentation geschrieben wird , und dass die Funktion (Unit - Tests, Integrationstests, Funktionstests ...) gründlich getestet wurde.Sobald die vorhanden
Product Backlog
ist und die Elemente mit weniger wichtigen Funktionen nach unten und die wichtigsten nach oben priorisiert sind, bestimmt das EntwicklerteamProduct Backlog Item
anhand der eigenen Erfahrung , wie lange die Entwicklung der einzelnen Elemente dauern soll. Hier können Sie festlegen, dass das Projekt ein volles Jahr Arbeit erfordert. Bedenken Sie, dass nur dieProduct Owner
priorisieren die Artikel, da er für den Return on Investment verantwortlich ist oder sonst weiß, was für den Endverbraucher am wichtigsten ist. Darüber hinaus muss das Team den Zeitaufwand für die vollständige Entwicklung eines Features bewerten, obwohl es hier und da wiederverwendbare Codeteile geben kann, die den Anforderungen dieses Features entsprechen länger als vom Team angegeben. Der Product Backlog muss nicht perfekt sein! Die einfache Aufzählung von User Stories, die wir uns für das zu entwickelnde System vorstellen können, ist in diesem Schritt des Prozesses ausreichend.Während dieser Zeit
Sprint Planning Meeting
legt das Team fest, was für die nächste Zeit entwickelt werden soll,Sprint
und erstellt somit dieSprint Backlog
. DieSprint Backlog
besteht aus einer Teilmenge, die darauf basiert,Product Backlog Items
dass dieTeam
Commits am Ende des Sprints durchgeführt werden. Betrachtet man zum Beispiel ein Produkt-Backlog mit 50 Artikeln und alle 50 Artikel benötigen ein Jahr, dann möchte das Team vielleicht 5 Artikel aus dem Produkt-Backlog auswählen und das Sprint-Backlog mit diesen 5 Artikeln erstellen. Dieselben 5 Elemente können bei Bedarf zu mehreren anderen Elementen erweitert / aufgelöst werden, sodass das Team nach der Überarbeitung möglicherweise seine Meinung ändert und sich verpflichtet, nur 4 von 5 zuvor ausgewählten Elementen aus dem Product Backlog auszuführen.Nach Abschluss des Sprint-Planungsmeetings, das einen ganzen Monat lang nicht länger als 8 Stunden dauern kann, verpflichtet sich das Team nicht nur, die Arbeit für die ausgewählten Elemente zu erledigen, sondern plant auch, wie die Aufgabe erledigt werden soll Damit jeder im Team genau weiß, was er zu tun hat,
Sprint
soll der beginnen. Es ist wichtig, dass das Team für das Projekt funktionsübergreifend ist.Das heißt, am Ende jedes Sprints, der in der aktuellen Situation einen Monat dauert, müssen alle
Team
Elemente, zu denen sich der Verpflichtete verpflichtet hat, ein zu lieferndes Stück voll funktionsfähiger Funktionen sein, die auf die im Product Backlog ausgewählten Elemente abzielen. Es muss lieferbar sein, aber es ist nicht obligatorisch, dass es geliefert wird, wenn es keinen Sinn macht, dies gemäß dem zu tunProduct Owner
.In dem Moment, in dem
Sprint Review Meeting
dieProduct Owner
Beschwörung erforderlich ist, wirdTeam
demonstriert, was während des Sprints getan wurde, und in dem angegeben werden muss, warum sie gegebenenfalls nicht die gesamte Arbeit geleistet hat, für die sie sich engagiert hat. Die rückgängig gemachte Arbeit wird dann wieder in dieProduct Backlog
und für die nächste zur Verfügung gestelltSprint
. Sicher, dass diese rückgängig gemachten Gegenstände in den nächsten Sprint aufgenommen werden, sofern der Product Owner nichts anderes mitteilt, falls sich das Ziel geändert hat. Aber am wichtigsten ist, dass das Ziel eines Systems sich während eines Sprints geändert hat, es jedoch nicht unterbrochen wird, es sei denn, dies ist absolut notwendig. Nur der Product Owner hat die Berechtigung, den Sprint zu unterbrechen.Sobald das vorbei
Sprint Review Meeting
ist, was für einen monatlichen Sprint nicht mehr als 4 Stunden dauern sollte (wenn ich mich richtig erinnere), ist es Zeit, zum zu gelangenSprint Retrospective Meeting
. DasSprint Retrospective
ist erforderlichTeam
, damit in Anwesenheit des Scrum-Masters und des Product-Owners (optional) besprochen werden kann, was schief gelaufen ist, wie das Scrum-Team seine Leistung verbessern kann usw. und Anpassungen entsprechend vorgenommen werden können.Wenn die Zeitspanne für die abgelaufen
Sprint Retrospective
ist, soll die neueSprint Planning Meeting
eintreten, um die nächste zu planenSprint
und die neue zu erstellenSprint Backlog
.Denken Sie daran, dass der
Team
für die AufrechterhaltungDaily Scrum
eines 15-minütigen Stand-up-Meetings verantwortlich ist, bei dem jedes Teammitglied die drei Fragen beantwortet (nicht in dieser Reihenfolge):Sie
Scrum Master
sind nicht verpflichtet , dort zu sein, müssen aber sicherstellen, dass sich das Team beim Daily Scrum trifft und die Mitglieder die drei Fragen richtig beantworten.Der Scrum Master ist für die Einhaltung der Scrum-Regeln durch die anderen Scrum Team-Mitglieder (Scrum Master, Product Owner und Team) verantwortlich.
Wenn Sie diese einfachen Regeln befolgen, wird Ihr Entwicklungsteam letztendlich agil. Beweglichkeit ist die Fähigkeit, jede Änderung so schnell wie möglich nachzuholen, dh am Ende jedes Sprints, um die Änderungen zu erkennen, die der Product Owner im Product Backlog vorgenommen hat. Im Falle einer totalen Katastrophe und einer vollständigen Änderung der Ausrichtung muss das Unternehmen höchstens einen Monat Entwicklungszeit in Kauf nehmen, was angesichts der Tatsache, dass ein Monat nur etwa 20 Arbeitstage umfasst, vernachlässigbar ist.
Wenn Sie weitere detaillierte Informationen zu Scrum und Agile Software Development benötigen, lesen Sie bitte Scrum.org und das entsprechende Scrum-Handbuch .
Das ist eine gute Antwort! Ich hoffe, dies hilft Ihnen zumindest bei Ihrem Projektmanagement.
EDIT # 1
Während Sie drei oder vier Phasen planen, wie Sie es nennen, ist es wahrscheinlicher, dass Ihr Team aus der primären objektiven Sicht den Fokus verliert. Wenn Sie bereits nach dem ersten Quartal demonstrieren, was Ihr Team getan hat, müssen möglicherweise einige wichtige Änderungen vorgenommen werden, die ein wichtiges Redesign und ein Überdenken der Architektur Ihrer Software erforderlich machen, um den Verlust von möglicherweise mehr als 20 Tagen wieder aufzunehmen. Das Prinzip der Agilität besteht darin, die Änderungen sofort nachholen zu können, oder sobald dies innerhalb eines angemessenen Zeitraums möglich ist, dh für Scrum, der Zeitrahmen eines Sprints.
quelle
Ich denke, Sie sollten so viele Starts haben, wie Sie können. Das einzige echte Feedback / Maß für den Fortschritt bei der Softwareentwicklung ist der Code, der in der Produktion bereitgestellt wird. Egal, welchen Prozess Sie verwenden, je öfter Sie live bereitstellen, desto agiler werden Sie. Das heißt, Sie erhalten früher echtes Feedback von echten Benutzern und können sich früher anpassen.
Obwohl Sie Big Design Up Front nicht ausführen sollten, ist es meines Erachtens gut, jedes Mal, wenn Sie den Rückstand anpassen und auffüllen möchten, über das Gesamtbild nachzudenken, sowohl für Scrum (für den nächsten Sprint) als auch für Kanban / Flow (wenn Platz vorhanden ist) im WIP-Limit). Wenn Sie das Ganze betrachten (Produkt, Dienstleistung usw.), ist es einfacher zu überlegen, welche Arbeitselemente Ihnen als Nächstes mehr Wert verleihen.
Beachten Sie, dass sich das Gesamtbild ändert. So oft Sie den Rückstand berücksichtigen, Prioritäten usw. anpassen, sollten Sie auch Änderungen am Gesamtbild berücksichtigen. Die Dinge ändern sich im Laufe der Zeit, einschließlich der Bedürfnisse bestimmter Kunden und sogar ganzer Märkte. Ihr Gesamtbild sollte dies widerspiegeln, damit Ihre Prioritäten bei jeder Auffüllung des Rückstandes an der Realität ausgerichtet werden können, und zwar nicht nur zu Beginn der Planungsphase.
Insgesamt denke ich, dass Sie agiler werden, je mehr Sie inspizieren und anpassen.
quelle
Die Big Picture-Planung dauert nicht so lange, und für große Projekte ist es von entscheidender Bedeutung, bei der Definition der Sprints das Gesamtbild zu berücksichtigen. Andernfalls können Verknüpfungen, die in einem Sprint erstellt werden, später zu Problemen führen.
Du solltest:
Halten Sie einen Masterplan (vorzugsweise ohne Termine) bereit, der sich im Laufe der Zeit weiterentwickelt.
Wenn Sie einen Sprint definieren, stellen Sie sicher, dass der Sprint mit dem Gesamtbild übereinstimmt. Dies bedeutet nicht immer, dass Sie Ihre Vorstellung davon ändern, was für den Sprint gewünscht wird. Manchmal werden Sie beim Definieren eines Sprints feststellen, dass Ihr Gesamtbild angepasst werden sollte. Auf die eine oder andere Weise sollten der Gesamtüberblicksplan und der Sprint miteinander im Einklang stehen.
Der Masterplan sollte angepasst werden, wenn Sie gehen. Sie werden Dinge lernen, während Sie arbeiten. Neue Möglichkeiten werden entstehen, Konfliktpunkte im Plan werden entstehen. Sie können den Masterplan jederzeit anpassen. Aber fast immer sollten Sie es zwischen den Sprints wiederholen - um Lehren aus dem letzten Sprint zu ziehen und um sicherzustellen, dass der nächste Sprint mit dem Gesamtbild in Einklang steht.
Ich denke, es ist am besten, wenn der Rückstand und der große Projektplan separate Strukturen sind. Der Eigentümer eines großen Projekts behält den Masterplan in einem hierarchischen Gliederungsformat bei, um den Kontext aufrechtzuerhalten, und dann können Features / Aufgaben daraus abgerufen werden, um den Rückstand aufzufüllen, der wiederum den nächsten Sprint antreibt.
Der Rückstand kann im Gegensatz zum Masterplan von anderen Teammitgliedern ergänzt werden. Es ist Sache des Hauptprojektbesitzers, dafür zu sorgen, dass die Backlog-Elemente und der Gesamtplan in Harmonie bleiben. Manchmal müssen Sie das Backlog-Element und manchmal den Gesamtplan anpassen.
Diese Methode behält die Kraft der Agilität und die Kraft, alle Elemente Ihres Projekts so gut wie möglich durch eine Gesamtplanung auszurichten.
Jim
quelle
Ich werde hier die Kurzform meiner Anti-Agile-Parole hinzufügen.
Agile kann für große Projekte sehr zerstörerisch sein, insbesondere wenn Bibliotheken und Frameworks erstellt werden, die für die zukünftige Entwicklung von grundlegender Bedeutung sind. Ein wirklich wichtiges Anliegen in den frühen Phasen ist "Wird mein Design die Funktionen unterstützen, die wir im nächsten Jahr liefern müssen?". Die meisten agilen Strategien erlauben kein derartiges vorausschauendes Denken, und daher werden Projektfehlerpunkte erstellt.
Ich bin in diesem Punkt ein bisschen traurig, weil ich gerade selbst davon verbrannt wurde. Wir schreiben einige unserer Kernbibliotheken neu. Die ersten Phasen waren abgeschlossen und erfüllten die Feature-Ziele für ihre Sprints. Es ist alles sehr beweglich. Dann wurde ich an Bord gebracht, um einige dynamische Ladefunktionen hinzuzufügen. Ich war jedoch für ungefähr sechs Wochen festgefahren, da ich, was vorher geschrieben wurde, davon ausging, dass es niemals zu einem dynamischen Laden kommen würde, viel Zeit damit verschwendete, das bereits Vorhandene umzuschreiben und zu bearbeiten. Das Schlimmste ist, dass die dynamische Belastung zu Beginn in den technischen Daten enthalten war. Wenn die anfängliche Arbeit alle zukünftigen Anforderungen im Auge behalten und die von agilen Praktiken als schlecht empfundene „große Konstruktionsarbeit“ durchgeführt worden wäre, hätte ich meine Funktion in wenigen Tagen implementieren können.
Die Lektion lautet: Verwenden Sie Agile für kleine Dinge, die Sie wegwerfen möchten. Es kann manchmal großartig sein. Es ist jedoch nicht der einzig wahre Weg der Softwareentwicklung. Wenn Sie grundlegenden Code schreiben, der ein hohes Risiko birgt oder eine lange Lebensdauer hat, sollten Sie das große Design verwenden.
quelle