Wer überprüft in Scrum „Fertig“?

13

Ich bin ein QA / Test Manager in meiner Organisation und bis heute habe ich die Qualität der Software überprüft (Tests geschrieben und ausgeführt und Fehler behoben). Wer wird dies in Scrum überprüfen? Woher weiß ich, dass das Team die richtigen Tests geschrieben und durchgeführt hat? Andererseits befürchte ich, dass sich das Team nicht stark genug fühlen wird, wenn ich die Überprüfung fortsetze. Aber ich brauche einen Überprüfungsprozess, bei dem "Fertig" in der Tat "Fertig" ist. Was schlagen Sie vor?

Eugene
quelle

Antworten:

21

Eine wichtige Idee bei Scrum ist, dass sich das Team auf eine "Definition von erledigt" einigen sollte. Im Idealfall handelt es sich dabei um eine Reihe objektiver Kriterien, die jeder anhand einer Checkliste überprüfen kann.

Um die Wahrscheinlichkeit zu verringern, dass etwas durchschlüpft, ist es jedoch absolut sinnvoll, dass die Überprüfung, ob etwas "erledigt" wurde, von einer anderen Person als der Person durchgeführt wird, die einen Artikel implementiert hat - oder von einem bestimmten QS-Mitarbeiter wie Ihnen (dies kann Sie jedoch dazu bringen) ein Engpass).

Im Zweifelsfall ist mit dem Team und dem Scrum Master zu besprechen und gemeinsam zu entscheiden.

Michael Borgwardt
quelle
+1, obwohl der Product Owner normalerweise nicht als Teil des Teams betrachtet wird - (s) er wird normalerweise außerhalb des Teamkreises gezogen - hat (oder sollte) jedoch ein Mitspracherecht bei der Definition von erledigt. Nur so kann (darf) der Product Owner die Arbeitsweise des Teams beeinflussen.
Marjan Venema
1
@MarjanVenema Der Product Owner ist sehr viel ein Teil des Scrum - Team berücksichtigt. In der Tat hat Scrum ohne den Product Owner kaum eine Chance, erfolgreich zu sein.
Derek Davidson PST CST
1
@Derek: Ich glaube, Sie haben ein Missverständnis aufgrund einer unklaren Terminologie. Es gibt sowohl ein "Scrum-Team" als auch ein "Development-Team", wobei das letztere Teil des ersteren ist, sowie den Product Owner und Scrum Master.
Michael Borgwardt
2
@MichaelBorgwardt Deshalb war ich in meiner Antwort so deutlich, dass der Product Owner Teil des Scrum-Teams ist . Ich bin damit einverstanden, dass der Product Owner nicht Teil des Entwicklungsteams ist, aber der Kontext es nicht klar machte. Ich hatte gehofft, Verwirrung zu beseitigen. Scheint, als hätte ich versehentlich welche erstellt :)
Derek Davidson PST CST
6

Ich denke, es gibt eine implizite Annahme in der Frage. Es gibt einen Unterschied zwischen "akzeptiert", wenn ein Product Owner angibt, dass ein Rückstandselement oder eine Aufgabe den Product Owner erfüllt hat, und "erledigt", was bedeutet, dass alle mit dem Rückstandselement verbundenen Arbeiten abgeschlossen sind.

Es gibt jedoch regelmäßig mehr für den Product Owner sichtbare Aufgaben, in der Regel eine Person, die bestenfalls semi-technisch ist, einschließlich (automatisierter und manueller) Tests, Dokumentationen und Überprüfungen. Der Product Owner ist selten in der Lage, die technischen Aspekte zu kennen, geschweige denn, ob sie abgeschlossen sind.

Daher ist es letztendlich Sache des Teams, zu bestimmen, was "getan" bedeutet. Die Organisation kann Standards haben und verschiedene Stakeholder werden ihre eigenen Anforderungen haben. Der Scrum Master oder relevante Manager sind normalerweise für das Zusammenstellen und Durchsetzen der Liste verantwortlich.

In Ihrem Beispiel sind Sie als QA / Test Manager derjenige, der angibt, ob die Tests abgeschlossen sind. Es kann jedoch sein, dass Sie nicht die beste Person sind, um zu sagen, ob der Code überprüft wurde, Sicherheitsanforderungen erfüllt sind, das Produkt internationalisiert ist, die Dokumentation vollständig ist oder was auch immer "erledigt" bedeutet.

akton
quelle
4

Das einzige Konzept von "erledigt" ist, ob eine Geschichte als Ganzes abgeschlossen ist oder nicht. Das Team sollte eine Definition von erledigt erstellt haben, die besagt, wann eine Geschichte beendet ist oder nicht. Dies umfasst in der Regel Dinge wie "Code wurde überprüft", "nächtliche Tests wurden durchgeführt", "alle Akzeptanzkriterien wurden erfüllt" usw. Wenn diese Dinge erledigt wurden, kann sich das Team sicher sein, alles getan zu haben von ihnen erwartet, eine Geschichte zu beenden.

Wenn Sie während eines Sprints feststellen möchten, ob einer dieser Punkte in der Definition von erledigt erreicht wurde, fragen Sie einfach. Bei Scrum and Agile dreht sich alles um offene Kommunikation. Wenn Sie Teil des Teams sind, fragen Sie Ihre Teamkollegen, ob jemand die Tests geschrieben oder ausgeführt oder den nächtlichen Job erstellt hat. Wenn Sie ein Stakeholder sind, fragen Sie den Scrum-Master.

Wenn Sie außerhalb des Teams sitzen, die Tests jedoch noch überprüfen müssen, fügen Sie im Rahmen der Definition von "erledigt" hinzu, dass die Tests vom Benutzer "user3251930" überprüft werden müssen. Wenn es das ist, was es braucht, um eine Geschichte zu machen, sei ehrlich und mache sie zu einem Teil des Prozesses. Der springende Punkt bei der "Definition von erledigt" ist, dass das Team mit Sicherheit weiß, dass es getan hat, was für die Bereitstellung hochwertiger Software erforderlich ist. Wenn ein Teil davon eine externe Überprüfung ist, so sei es.

Letztendlich ist es der Product Owner, der eine bestimmte Story abzeichnet. Am Ende des Tages hat er oder sie die endgültige Entscheidung, ob eine Story als Ganzes fertig ist oder nicht.

Bryan Oakley
quelle
Ich muss die Tests überprüfen, sonst würde ich nicht wissen, ob die richtigen Tests geschrieben wurden. Die Definition von "Fertig" enthält nicht die genauen Tests, die geschrieben werden sollten.
Eugene
@ user3251930: Warum müssen Sie sie überprüfen? Vertraust du deinem Team nicht? Wenn Sie sie jedoch wirklich überprüfen müssen, machen Sie sie zu einem Teil der Definition von done be "Tests wurden von user3251930 überprüft".
Bryan Oakley
Wenn die Kunden etwas bekommen, das nicht vollständig getestet wurde, wäre es wirklich sehr, sehr schlecht. Vielleicht kann ich dem Team mit der Zeit vertrauen, hoffe ich.
Eugene
1

Erste Frage, die Sie sich stellen sollten

Bist du der Scrum Master ? Falls ja.

In Scrum werden Prozesse vom Scrum Master gesteuert und verwaltet.

Wie machst du das:

In der Anforderungsphase können Sie die User Stories für jeden Test verwenden, der überprüft werden muss.

In jedem Sprint Die Arbeitselemente werden aus dem Product Backlog abgerufen und vom Product Owner geleitet. Jedes von ihnen verfügt auch über Überprüfungskriterien.

Jetzt ändern sich in Scrum die Anforderungen nicht mehr, nachdem der Sprint gestartet wurde. Am Ende des Sprints können Sie die Überprüfung anhand der Kriterien für jeden ausgeführten Artikel analysieren.

Wenn es fertig ist, kann es nur durch die Antwort des Product Owners gefunden werden.

Denken Sie in Agile daran, dass Sie die Veränderung auch spät in der Entwicklungsphase "annehmen"

Neo
quelle
0

Das Team entscheidet. Ich benutze eine Checkliste für das, was als "Fertig" gilt. Was ist für jede Story, jeden Sprint und jede Veröffentlichung erledigt?

Wie bereits erwähnt, liegt die Entscheidung letztendlich beim Produktbesitzer.

Sherbert
quelle
Ist das nur deine persönliche Meinung oder kannst du es irgendwie bestätigen?
gnat
-1

Stimmen Sie zu, dass dies vom Entwicklungs- / Testteam abhängig von Ihren eigenen Praktiken definiert werden muss. Einige Projekte laufen so agil, dass sie bereit sind, Fehler in ihrem Alpha-Stream freizugeben. Einige betrachten jeden Fehler, der außerhalb der Entwicklungsgruppe auftritt, als Prozessfehler.

Für das Projekt, an dem ich arbeite, ist eine Überprüfung der Codeänderungen durch Fachkollegen erforderlich. Wer auch immer den Code geschrieben hat, muss entweder Regressionstests bereitstellen / aktualisieren oder erklären, warum dies nicht möglich ist. (Sie und ihre Prüfer müssen auch bestätigen, dass sie nach bekannten schlechten Praktiken gesucht haben. Wir sind im Allgemeinen viel glücklicher, wenn sie nachweisen können, dass sie die vollständige Testsuite ausgeführt haben und ein sauberes Ergebnis erhalten haben (oder ein sauberes Modulo bekannt haben) Zumindest offene Fragen) Der Code muss dann intensive automatisierte Unit- und Funktionstests auf mehreren Plattformen überstehen, um nachzuweisen, dass er keine Regressionen gegen diese verursacht, und wird von einem automatisierten Codeanalysesystem weiter auf gemeinsame Antimuster überprüft Übernehmen wir es dann in den Hauptentwicklungs-Stream und markieren das Workitem als abgeschlossen.

Das garantiert natürlich nicht, dass niemand einen neuen Weg zum Scheitern findet, aber es reduziert das Risiko auf ein akzeptables Niveau, ohne die Entwicklungsgeschwindigkeit stark zu beeinträchtigen.

Keshlam
quelle