Wir haben Scrum in den letzten 5 Monaten recht erfolgreich implementiert. Wir sind jedoch 3 Wochen von PROD entfernt, ohne jemals einen End-to-End-Integrationstest durchzuführen. AUTSCH! Ich brauche Hilfe. Ohne die Ursachen dafür anzugehen (an DIESEM Punkt), müssen wir jetzt die aktuelle Iteration planen, die aus geringfügigen Verbesserungen und VIELEN noch unbekannten Fehlerkorrekturen besteht. Wie erklären Sie dieses Szenario? Wie planen Sie Ihre Iteration, um noch zu findende Fehler zu beheben?
9
Antworten:
Scrum oder nicht, Bugfixing ist grundsätzlich nicht vorhersehbar. Ich glaube, das Beste, was Sie tun können, ist:
Dann sollten Sie sicherstellen, dass Sie das nächste Mal frühzeitig mit dem Testen beginnen und Fehler beheben, während Sie fortfahren. Alle sinnvollen Methoden, ob agil oder nicht, erfordern die Behebung bekannter Fehler, bevor Sie mit neuen Funktionen fortfahren. Außerdem sollten Sie berücksichtigen, wie viel Zeit für die Fehlerbehebung der einzelnen Funktionen aufgewendet wurde, damit Sie Ihre Schätzung für die zukünftige Implementierung der Funktion in den Debug-Status verbessern können.
Die Schätzung und Fehlerbehebung werden von Joel Spolsky in Evidence Based Scheduling und Hard-Assed Bug Fixin 'ausführlich behandelt . Es hat nichts mit Scrum zu tun, aber ich denke, es ist allgemein genug, dass vieles davon zutrifft.
quelle
In Bezug auf eine "Iteration zur Fehlerbehebung". Gefundene Fehler sollten nicht anders behandelt werden als Geschichten. Arbeiten Sie mit dem Team zusammen, um den Aufwand (Story Points) zur Behebung jedes Fehlers abzuschätzen, und arbeiten Sie mit dem Product Owner / Kunden zusammen, um zu entscheiden, ob der Fehler in die nächste Iteration aufgenommen werden soll.
In Bezug auf "noch zu findende Fehler". Vorzugsweise findet und behebt das Team bei jeder Iteration Probleme. Wenn nicht, besprechen Sie dies in Ihrer nächsten Retrospektive. Wenn die Produktqualität so niedrig ist, dass eine Freigabe nicht möglich ist, bewegen Sie Ihre besten " Fehlersucher" sofort, um Fehler zu finden (nicht zu beheben). Wenn die Qualität hoch genug ist, um eine Beta-Version für ausgewählte Benutzer bereitzustellen, tun Sie dies. Wenn dies nicht möglich ist, stellen Sie mindestens Live-Benutzerdemos zur Verfügung, in denen die von Ihnen empfohlenen Schwachstellen besprochen werden.
quelle
Wir planen keine 'Bugfix-Iterationen', aber wir planen Systemtest-Iterationen vor jeder Version. Der Systemtest besteht aus Integrations-, Regressions- und Realese-Tests für alle Teile des Produkts. Tester testen das Produkt (ein ziemlich großes Altsystem) und Entwickler beheben alle gefundenen Fehler. Wenn keine Fehler gefunden werden, untersuchen wir entweder die Funktionspläne für das nächste Projekt oder arbeiten an internen Verbesserungen.
Derzeit planen wir sechs Wochen Systemtests nach dem Einfrieren des Codes (für ein fünfmonatiges Projekt, einschließlich Systemtest), um sicherzustellen, dass alles funktioniert. Dies kommt zu allen Tests hinzu, die während der Implementierungsiterationen durchgeführt werden.
quelle
Sie müssen eine Reihe von "Freigabekriterien" definieren. Dies können sein:
etc.
Am Ende jeder Iteration testen einige Personen (entweder manuell oder durch Schreiben automatisierter Tests) und andere die Fehlerbehebung, um festzustellen, ob Sie Ihre Kriterien erfüllt haben. Wenn Sie dann freigegeben haben, wenn nicht, dann gehen Sie für eine weitere Iteration.
Es sollte die Möglichkeit einer Überschreibung geben, und oft bieten die Rohzahlen kein realistisches Bild der Anwendung. Möglicherweise haben Sie einige wirklich schwerwiegende Mängel, die sich jedoch nur unter seltenen Bedingungen manifestieren, mit denen Sie kurzfristig leben können.
quelle
Eine Möglichkeit besteht darin, Geschichten für Ihre Integrationstests zu schreiben, in denen Sie neue Geschichten für alle gefundenen Fehler schreiben und die Fehlergeschichten in der nächsten Iteration beheben.
Eine andere Möglichkeit besteht darin, eine Story zu erstellen, in der steht: "Beheben Sie Fehler, die beim Integrationstest gefunden wurden." In früheren Versionen sollten Sie eine Vorstellung davon haben, wie viele Probleme normalerweise gefunden werden und wie schwierig sie zu beheben sind, damit Sie basierend auf diesem Wissen Story-Punkte zuweisen können. Sie könnten es vielleicht in Komponenten aufteilen, wenn es dadurch leichter zu handhaben ist. Darin liegt immer eine unvermeidbare Unsicherheit. Fügen Sie einige zusätzliche Story-Punkte hinzu, um dies zu berücksichtigen.
Sie haben wahrscheinlich verspätet erkannt, dass der beste Weg darin besteht, wenn möglich ein wenig Integrationstest in jede Iteration einzubeziehen. Herzlichen Glückwunsch zum Erkennen und Verbessern Ihres Prozesses für Ihre nächste Version.
quelle