Wie kann ich eine Iteration zur Fehlerbehebung berücksichtigen?

9

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?

Pomario
quelle
16
"Wir haben Scrum recht erfolgreich implementiert ... ohne jemals einen End-to-End-Integrationstest durchgeführt zu haben." Tut mir leid, dass du es falsch gemacht hast. Sie sollten am Ende jeder Iteration versenden können.
Xsace
3
@xsAce es ist eine 6-monatige Iteration
Bart
3
Die Frage selbst ist gut, aber die Prozessbeschreibung gibt mir das Gefühl, dass Sie leugnen, wie gut die Dinge funktionieren. Wenn Sie nichts anderes tun, teilen Sie der Bestellung mit, dass das Team derzeit keinen Veröffentlichungstermin festlegen kann. Das Beste, was Sie tun können, ist, sich zu ihm / ihr zu verpflichten, dass Sie sich in der nächsten Iteration auf eine Qualitätsbewertung konzentrieren. Führen Sie bei Ihrem nächsten Rückblick eine ernsthafte Teamdiskussion durch.
GuyR
1
Wenn Sie Ihre Geschichte mit Scrum-bezogenen Fragen auf dieser Website durchgehen, ist es klar, dass Ihr Unternehmen "kein Scrum" betreibt und stattdessen wie ein Team von Menschen klingt, die sich mit der Entwicklung von Wasserfällen viel besser auskennen. Nicht, dass Waterfall an sich "schlecht" ist, sondern nur erkennen, wenn das Management gerne Wörter wie "Agile", "Scrum", "Sprint", "Backlog" und "Planning Poker" als Schlagworte verwendet, sich aber nicht voll und ganz der Kultur und verpflichtet Managementwechsel notwendig, um diese Dinge zu erfüllen. Sie möchten die Vorteile von Scrum nutzen, ohne sich für Scrum zu engagieren.
maple_shaft
4
Es sind Puristen des Scrum-Prozesses wie ihr, die die Leute davon abhalten. Wenn er nicht erkannt hätte, dass er ein Problem hat, hätte er die Frage nicht gestellt. Es geht darum, herauszufinden, wo Sie einen Fehler gemacht haben, und Schritte zu unternehmen, um in zukünftigen Iterationen bessere Ergebnisse zu erzielen. Individuen und Interaktionen über Prozesse und Werkzeuge.
Karl Bielefeldt

Antworten:

7

Scrum oder nicht, Bugfixing ist grundsätzlich nicht vorhersehbar. Ich glaube, das Beste, was Sie tun können, ist:

  • Beginnen Sie sofort mit dem Testen, ohne eine erste Schätzung, wann dies durchgeführt wird.
  • Wenn Sie jeden Fehler entdecken, führen Sie eine erste Analyse durch, bis Sie ihn abschätzen können.
  • Schätzen Sie den Fehler und entscheiden Sie, ob er behoben werden muss und ob er für die anfängliche Veröffentlichung behoben werden muss.
  • Wenn es behoben werden muss, fügen Sie es der Iteration hinzu.
  • Zeichnen Sie ein Burn-Down-Diagramm. Irgendwann nimmt es ab, was bedeutet, dass Sie Fehler nicht mehr schneller finden, als Sie es schaffen, sie zu beheben. An diesem Punkt können Sie eine grobe Schätzung (und zunehmend präziser) abgeben, wann die Freigabe erfolgen kann.

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.

Jan Hudec
quelle
5

Wie kann ich eine Iteration zur Fehlerbehebung berücksichtigen? Wie planen Sie Ihre Iteration, um noch zu findende Fehler zu beheben?

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.

GuyR
quelle
+1. Wenn Sie sich in der Beta-Qualitätsphase befinden, können Sie auch Peer-Tests durchführen.
Louisgab
2

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.

Paula
quelle
1

Sie müssen eine Reihe von "Freigabekriterien" definieren. Dies können sein:

  • Mittlere Zeit zwischen Ausfall
  • Anzahl der pro Tag gefundenen Mängel
  • Schwere der pro Tag festgestellten Mängel
  • Anzahl der ausstehenden Mängel

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.

ChrisF
quelle
1

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.

Karl Bielefeldt
quelle