Wie schätzt ein Team (neu in Produkt und Domäne) User Stories eines zehn Jahre alten Produkts ein?

Ich bin der Scrum Master für eines der Produkte in einem Softwareentwicklungsunternehmen. Unser Team, einschließlich mir, operiert von Indien aus. Mein Product Owner ist jedoch in den USA. Wir arbeiten an der Funktionsentwicklung für dieses Produkt, das jetzt seit zehn Jahren existiert.

Unser Team in Indien startete vor sechs Monaten ohne Produkt- oder Domänenkenntnisse. Es gibt einige Probleme, mit denen wir seitdem konfrontiert sind:

  1. Obwohl dem Team eine Sitzung zum Wissensaustausch auf hohem Niveau über die Domäne und das Produkt zur Verfügung gestellt wurde, fühlt sich das Team nicht sicher genug, die User Stories in Funktionalität umzuwandeln. Der Hauptgrund, den ich gefunden habe, war, dass das Produkt in den letzten zehn Jahren so groß geworden ist, dass das Team nicht in der Lage ist, verschiedene Stellen herauszufinden, an denen es den Code hinzufügen/ändern muss. Manchmal dauerte es mehrere Sprints, um eine User Story abzuschließen.
  2. Die zweite Ausgabe ist das Nebenprodukt der ersten Ausgabe. Da das Team nicht zuversichtlich ist, welche Änderungen es schnell vornehmen muss, konnten sie die User Stories in den Sprint-Planungsmeetings nicht einschätzen.

Gibt es also eine Richtlinie, die unser Team befolgen muss, um bessere User Stories zu erstellen, wenn man bedenkt, dass dieses Produkt ziemlich alt ist und sich seit seiner Entwicklung stark verändert hat?

Beachten Sie, dass es in den USA ein anderes Scrum-Team gibt, das parallel Funktionen für dasselbe Produkt entwickelt.

Hallo Ramu, willkommen bei PMSE! Ich habe Ihre Frage leicht bearbeitet, um sie besser an unsere Q&A-Antwort anzupassen. Könnten Sie es bitte überprüfen und alles ändern, was ich möglicherweise falsch verstanden habe?
Danke Tiago für die Neuformulierung der Frage. Ja, Sie verstehen meine Frage richtig

Antworten (3)

TL; DR

Mangelndes Produkt- oder Domänenwissen ist eher eine Prozesslücke als ein Fehler, der dem Team zuzuschreiben ist. Sie können die Genauigkeit Ihrer Schätzungen durch eine erhöhte Beteiligung des Product Owners, Schulungs- und Dokumentationsstorys und Story-Spikes erhöhen.

Alle Geschichten MÜSSEN geschätzt werden

Das Team hat nicht die Möglichkeit, auf Schätzungen zu setzen. Am Ende des Sprint Plannings müssen alle in den Sprint aufgenommenen Stories eine Schätzung haben.

Die Schätzung sollte so genau sein, wie Sie es innerhalb des für die Sprint-Planung vorgesehenen Zeitfensters machen können. Deshalb muss der Product Owner beim Sprint Planning dabei sein:

  • Um Fragen zu Umfang oder Zielen zu beantworten.
  • Um User Stories zu verfeinern oder zu klären.
  • Eine Geschichte zu entfernen oder zu ersetzen, die mit dem aktuellen Wissen des Teams wirklich unschätzbar ist.

Eine Schätzung ist keine Garantie – es handelt sich um eine „fundierte Vermutung“, die auf den Informationen basiert, die dem Team während der Schätzung zur Verfügung stehen. Wenn Informationen fehlen, wird diese Schätzung im Allgemeinen falsch sein; das ist einfach Teil des Scrum-Prozesses, und die Probleme, die zu einer schlechten Schätzung geführt haben, sollten während der Sprint-Retrospektive evaluiert und entsprechende Gegenmaßnahmen vorgeschlagen werden.

Schätzungen sollten Unsicherheiten beinhalten

[D]as Team ist nicht in der Lage, verschiedene Stellen herauszufinden, an denen es den Code hinzufügen/ändern muss. Manchmal dauerte es mehrere Sprints, um eine User Story abzuschließen.

Eine gute Schätzung trägt der Unsicherheit des Teams Rechnung. Nehmen wir zum Beispiel an, eine User Story über das Hinzufügen eines Widgets zu einem Thingamabob beinhaltet Änderungen an einer unbekannten Anzahl von Klassen mit ungewisser Komplexität. Wie soll man das einschätzen?

Spikes

Der erste Schritt besteht darin, Ihre Unsicherheit so weit wie möglich zu reduzieren. Vielleicht brauchen Sie ein Paar Story-Spikes, wie zum Beispiel:

  1. Grenzen Sie den Anwendungsbereich ein.

    Als Entwickler
    möchte ich wissen, wie viele Klassen am Rendern eines Widgets beteiligt
    sind, damit ich den Aufwand für die Änderung abschätzen kann.

  2. Schätzen Sie die Komplexität ein.

    Als Entwickler
    möchte ich die Komplexität der Widget-Rendering-Klassen messen
    , um den Arbeitsaufwand für deren Änderung genauer abschätzen zu können.

Wenn Sie einige Zeit mit diesen Spikes verbringen, ist Ihr Team besser in der Lage, eine fundierte Meinung über den Arbeitsaufwand abzugeben, der erforderlich ist, um die ursprüngliche Geschichte fertigzustellen. Darüber hinaus geben die Spikes dem Team mehr Sicherheit, dass es den Teil des Systems versteht, den es schätzen muss.

Fudge-Faktoren

Unabhängig davon, ob Sie die Spikes zuerst ausführen oder nicht, enthalten alle Geschichten ein gewisses Maß an Unsicherheit. Je größer jedoch der Unsicherheitskegel ist, desto ungenauer sind Ihre Schätzungen. Die Spikes reduzieren den Kegel, beseitigen ihn jedoch nicht vollständig.

Unabhängig von der Größe des Kegels sollte man beim Schätzen immer das Konfidenzintervall berücksichtigen. Dies führt zu Story-Point-Anpassungen basierend auf dem aktuellen Wissensstand des Teams.

  • Hohes Vertrauen, kleiner Kegel der Unsicherheit

    Beispielsweise kann das Team während der Sprint-Planung sicher sein, dass eine Änderung auf einen bekannten Bereich des Codes beschränkt ist und die Unsicherheit daher gering ist. In solchen Fällen lässt sich der Aufwand leicht abschätzen.

  • Geringes Vertrauen, großer Unsicherheitskegel

    Wenn andererseits die Unsicherheit hoch ist, sollte sich dies in der Story-Point-Schätzung widerspiegeln. Das Team könnte zum Beispiel sagen:

    Die Änderung betrifft nur die Umbenennung von „foo“ in „bar“, aber wir sind uns nicht sicher, welche Klassen von der Änderung betroffen sein sollen. Die Änderung selbst ist wahrscheinlich nur 1 Punkt, aber herauszufinden, welche Klassen geändert werden müssen, sind wahrscheinlich weitere 5 Punkte. Wir können es nicht eine Sechs nennen, da es keine solche Punktekarte gibt, also machen wir stattdessen eine 8-Punkte-Geschichte.

Denken Sie daran, dass Story Point-Schätzungen eine Möglichkeit sind, dem Product Owner und der Organisation Ressourcenbeschränkungen mitzuteilen. Die richtige Dimensionierung einer Story basierend auf Unsicherheit verbessert die Genauigkeit der Velocity-Metriken und spiegelt genauer die Geschwindigkeit wider, mit der das Projekt Elemente im Product Backlog bearbeiten kann.

Indem Sie den Mangel an verfügbaren Informationen über das System zu sichtbaren Kosten für das Projekt machen, geben Sie dem Product Owner die Möglichkeit, Schulungen, Dokumentationen oder Code-Refaktorisierungen zu priorisieren, die die Produktivität des Teams verringern könnten.

Trainingsgeschichten erstellen

Fehlendes Systemwissen ist ein Prozessproblem , das nicht ohne Mitwirkung des Product Owners gelöst werden kann. Da der Product Owner durch die Priorisierung des Product Backlogs für die Ressourcenzuweisung im Projekt verantwortlich ist, liegt es in seiner Verantwortung, dem Product Backlog bei Bedarf Schulungs- und Wissenstransfer-Storys hinzuzufügen.

Wenn ich beispielsweise der Scrum Master in diesem Team wäre, würde ich Backlog Grooming als Gelegenheit nutzen, um vorzuschlagen, dass der Product Owner einige zeitgebundene Schulungssitzungen zum Product Backlog hinzufügt. Darüber hinaus würde ich aktiv dazu ermutigen, User Stories wie diese zum Product Backlog hinzuzufügen:

Als Entwickler eines Wartungsteams
würde ich gerne mit einem der ursprünglichen Entwickler zusammenarbeiten, um das Foo-Modul zu dokumentieren
, damit ich das System besser verstehen und genauere Schätzungen erstellen kann.

Solche Geschichten würden einen großen Beitrag zur effektiven Kommunikation der zugrunde liegenden Prozessprobleme an die Stakeholder leisten. Diese Geschichten sprechen auch direkt eine Wissenslücke an, die Ihr Projekt weiterhin plagen wird, bis es direkt konfrontiert wird.

Vielen Dank an CodeGnome für die Bereitstellung einiger aufschlussreicher Informationen. Die Idee, Trainingsgeschichten als Teil des Produkt-Backlogs zu erstellen, ist interessant

Herausforderungen bei der Arbeit mit einem Offshore-Entwicklerteam

Basierend auf meiner Erfahrung mit einem ähnlichen Setup, hier sind meine Vorschläge:

  • Bringen Sie ein KMU aus den USA dazu, nach Indien zu reisen und das gesamte Team mindestens ein paar Wochen lang praktisch zu schulen.
  • Bringen Sie ein paar wichtige Teammitglieder aus Indien dazu, für ein paar Wochen in die USA zu reisen, um praktische Schulungen mit den KMUs zu absolvieren.
  • Bringen Sie zusätzlich zum Product Owner einen SME aus dem US-Team dazu, an den Sprint-Planning-Meetings teilzunehmen. Lassen Sie den PO die Geschichten vor dem Planungstreffen aufschreiben. Lassen Sie das Indien-Team planen, wie es sie implementieren wird, und schätzen Sie die Geschichten ein und geben Sie sie in Auftrag. Lassen Sie das US-KMU während des Planungstreffens überprüfen, ob dies der richtige Ansatz ist.

Abhängig von Ihrem Budget und Ihrer Motivation sollten Sie einige, wenn nicht alle der oben genannten Möglichkeiten ausprobieren. Weitere Must-haves sind natürlich:

  • Zur besseren Kommunikation sollten diese Planungsbesprechungen per Video abgehalten werden, sofern dies noch nicht geschehen ist.
  • Ihre Stories sollten eine klare Liste überprüfbarer Akzeptanzkriterien haben, falls dies noch nicht der Fall ist.
Zusätzlich zu Ihren anderen Vorschlägen könnte die Paarprogrammierung mit den ursprünglichen Entwicklern bei Akzeptanztests eine gezieltere Lösung für die Wissenslücke des OP sein. Es ist wirklich diese Kommunikations-/Informationslücke, die das Kernproblem ist, IMHO.

Ich würde mir die Beschwerden der letzten Jahre ansehen (wenn einige Akten aufbewahrt wurden) und ob einige Kunden in der Vergangenheit um Rückerstattung gebeten haben + welche Teile des Produkts kaputt gegangen sind oder womit die Kunden nicht zufrieden waren. Ich würde den Kundendienst und den technischen Support Ihres Unternehmens anrufen + diejenigen, die Ihr Produkt reparieren können (auch wenn dies ein anderes Unternehmen für Sie erledigt).