In einer idealen agilen Welt erstellen Sie schnell eine kleine, aber nützliche Teilmenge des gewünschten Endsystems und geben sie den Benutzern. Sie sind aufgeregt, weil es nützlich ist, sie beginnen damit und geben Feedback. Sie erarbeiten dann, was Sie hinzufügen müssen, bauen das auf und wiederholen es, bis Ihnen die Zeit ausgeht.
In letzter Zeit hatte ich einige Projekte, bei denen ein funktionierendes System ersetzt wurde. Das obige Modell funktionierte überhaupt nicht: Bis Sie ein System erstellt hatten, das praktisch alle Funktionen des vorhandenen Systems umfasste, hatten die Benutzer überhaupt kein Interesse daran. Sie würden es nicht benutzen.
Wie wendet man Agile an, wenn "die kleinste nützliche Teilmenge" "alles" ist?
agile
scrum
users
iterative-development
Steve Bennett
quelle
quelle
Antworten:
Die agile Lösung könnte darin bestehen, nicht alles auf einmal zu ersetzen, sondern den Austausch schrittweise einzustufen.
Führen Sie das neue System schrittweise ein und lassen Sie dabei Teile des alten Systems laufen. Das alte System wird nicht auf einmal ausgeschaltet, es verschwindet nur. Die neuen Teile bieten neue Funktionen oder andere Vorteile, sodass die Benutzer diese gerne nutzen. Dies ist auch weniger riskant, da Sie zu jeder Zeit ein zu 100% funktionierendes System haben.
quelle
Anstatt das vorhandene System neu zu schreiben (was, wie Sie bereits erwähnt haben, einige Anstrengungen erfordert, bevor das neue System mit der vorhandenen Funktionalität übereinstimmt), sollten Sie den Strangling Vine- Ansatz in Betracht ziehen. Grundsätzlich implementieren Sie neue Funktionen mithilfe Ihres neuen Ansatzes über die vorhandene Anwendung hinaus. Wenn Sie die Mängel des alten Systems beheben, um neue Funktionen zu adressieren, wird der neue Code schließlich den alten vollständig ersetzen.
Dies erfordert mehr Präzision und Aufwand als ein "Neustart" der alten App. Sie haben jedoch weniger Zeit für den ROI. Außerdem können Sie während des Vorgangs Haken anbringen, damit das "neue" System vom nächsten "neuen" System leichter erwürgt werden kann.
quelle
Die Freigabe kleiner Inkremente in die Welt könnte für Projekte auf der grünen Wiese funktionieren, aber selbst dann ist die geringe Anzahl von Funktionen möglicherweise nicht allzu nützlich.
Scrum befürwortet, dass das Produkt nach jedem Sprint "potenziell versandfähig" ist. Es muss nicht versandt werden, sondern die Qualität eines versandfähigen Produkts haben.
Wenn Sie Benutzern eine inkrementelle Version der App geben möchten, können Sie diese als Alpha, Beta und Release Candidate-Versionen klassifizieren, während die echte Produktions-App weiterhin verwendet wird.
Möglicherweise werden neue Funktionen hinzugefügt und alte entfernt, wenn Sie das Feedback der Benutzer berücksichtigen.
quelle
Ich arbeitete an einem umfangreichen Austausch von Geschäftsanwendungen für ein großes nationales Kabelfernsehnetz. Die Entwicklung des neuen Systems wurde mit SCRUM durchgeführt. Es handelte sich um ein 18 bis 24-monatiges Entwicklungsprojekt, um fast alle wichtigen Subsysteme erneut zu implementieren. die näherten sich 10 Jahre alt.
Es gab eine Planungsphase von ungefähr 6 Monaten, bevor die Entwicklung begann, aber es wurde auch als SCRUM angegangen. Hier hat der Product Owner nach bestehender Systemanalyse und Befragung der Kunden hochwertige Stores und Epics verfasst.
Das vorhandene System war im kritischen Wartungsmodus äußerst stabil. Es wurden nur Show Stopper-Probleme behoben, alles wurde nur zu historischen Zwecken protokolliert und um sicherzustellen, dass im neuen System nicht dieselben Probleme auftraten.
Das neue System entwickelte sich wie in einem agilen Prozess beschrieben, es war größtenteils extrem reibungslos. Wenn das Ersatzsystem die Eigenschaftsparteilichkeit erreichte, ging es nicht in die Produktion, sondern in parallele Produktionsversuche. Eine Untergruppe von nicht kritischen Mitarbeitern begann, beide Systeme zu verwenden, um zu überprüfen, ob sich das neue System wie das alte verhält. mit den alten bugs natürlich behoben.
Nachdem das neue System fast 100% neue Funktionen erhalten hatte, wurde es für allgemeine parallele Produktionsläufe eingeführt, die einige Monate dauerten.
Sobald der Kunde der Ansicht war, dass seine Anforderungen erfüllt werden, wurde das alte System gesichert, ausgeschaltet und in Betrieb genommen. Ich gehe davon aus, dass sie die alte Systemhardware neu definiert haben, da sie nach dem Umbau nie wieder auf das alte System zurückgreifen mussten.
quelle
Ich denke immer noch, dass Agilität in diesem Szenario viel Wert schafft.
Es ist nur so, dass Sie ein genau definiertes Endziel haben, das aktuelle System zu ersetzen.
Mit agilen Techniken und Prozessen können Sie noch effektiver dorthin gelangen .
Zum Beispiel:
Sie können das System weiterhin iterativ und in kleinen Sprints ausliefern.
Sie können nach wie vor agile Techniken verwenden, um die Arbeit nach der Kommunikation mit den Schlüsselpersonen zu priorisieren.
Sie können dennoch agil planen, basierend auf der beobachteten Geschwindigkeit.
Sie können weiterhin agile Techniken und Philosophien wie die Verbreitung von Wissen, TDD und Clean Coding verwenden, um die Qualität und das interne Design des Projekts zu verbessern.
Wenn Sie Leute haben, die wirklich kein Interesse an dem Projekt haben und sich nicht mit dem Projekt befassen, bis sie einen perfekten Ersatz gefunden haben, haben Sie ein größeres Problem, unabhängig davon, ob Sie Wasserfall, Agilität oder irgendeinen Prozess verwenden.
quelle
Es funktioniert genauso, aber es wird schwieriger sein, diesen Ansatz an bestehende Benutzer zu verkaufen. Sie möchten das neue System möglicherweise nicht und möchten nicht durch regelmäßige Tests unterbrochen werden. Sie wollen so lange wie möglich warten und es dann am Ende einfach testen. Die meisten Benutzer fühlen sich bis zu einem gewissen Grad so, aber es liegt an den Verantwortlichen, sie zu schulen. In ihren Gedanken arbeiten Sie mit einer vorhandenen Anwendung. Sie sollten also wissen, was zu tun ist und warum sie stören.
Machen Sie ihnen klar, dass Sie es nicht so machen wollen, weil Sie denken, dass es Spaß machen wird und Sie sich durch einen Wasserfallprozess einsam fühlen. Es wird auf lange Sicht eine bessere App machen.
Ein wichtiges Verkaufsargument könnte darin bestehen, diese eine Änderung während des Aufbaus der neuen App zu implementieren, die sie schon immer wollten, aber niemals im alten System erhalten konnten.
quelle
Wenn ich ein altes verrostetes Auto habe, das ich fahren muss, um zur Arbeit zu kommen, und ich gehe zum Händler, um ein neues Auto zu kaufen. Das Modell, das ich möchte, ist nicht vorrätig, daher muss es ab Werk bestellt werden, und es wird eine Weile dauern, bis es eintrifft.
Der Händler beschließt dann aus gutem Glauben, Ihnen den Motorblock des Autos zu geben, bis das von Ihnen bestellte Auto eingetroffen ist. Was sollen Sie mit einem Automotor tun? Sicher, ich kann einige Komponenten anschließen, um es zu testen und zum Laufen zu bringen, aber es hilft mir nicht wirklich, morgen dort zu arbeiten, wo das alte verrostete Auto funktioniert.
Zugegeben , es ist ein weit andere weinen zwischen einem Auto zu bauen und kundenspezifische Software - Aufbau, aber sie ignorieren , dass für die Zwecke der Beweisführung . Der Punkt der Geschichte ist nicht zu verwirren, dass der Kunde keine Verwendung für inkrementelle Änderungen findet, wenn er bereits eine Software hat, die gut genug ist, um die Arbeit jetzt zu erledigen. Es erfüllt ihr Bedürfnis vorerst schon.
Das heißt nicht, dass Agile hier kein wichtiger Teil des Prozesses ist, da es dem Kunden ein kontinuierliches Feedback zum Projektstatus ermöglicht. Sie können sicherstellen, dass Fortschritte erzielt werden, bevor wichtige Meilensteine und Ergebnisse erreicht werden. Sie können potenzielle Probleme und Probleme frühzeitig erkennen, bevor die Behebung eines Fehlers zu kostspielig wird.
Vielleicht möchten Sie als Autokunde nur den Motor betrachten und bewerten, um sicherzustellen, dass Sie tatsächlich das bekommen, was Sie erwartet haben. Hoppla, ich wollte eigentlich einen 6-Zylinder-Motor anstelle des 4-Zylinder-Motors! Habe ich dir das nicht früher gesagt? Kein Problem, lassen Sie uns eine Änderung in der Fabrik bestellen.
Verkaufen Sie den Kunden die Idee, dass es in ihrem besten Interesse ist, die neuen Software-Releases noch nicht als Ersatz zu verwenden, sondern sie zu evaluieren und sicherzustellen, dass sie mit jedem Schritt auf dem Weg zufrieden sind.
quelle